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(c,a){Ext.form.FileUploadField.superclass.onRender.call(this,c,a);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);Date.prototype.getFirstDateOfWeek=function(b){if(typeof b==="undefined"){b=(Ext.DatePicker?Ext.DatePicker.prototype.startDay:0);}var a=this.getDay()-b;if(a<0){a+=7;}return this.add(Date.DAY,-a);};Array.prototype.sortDates=function(){return this.sort(function(d,c){return d.getTime()-c.getTime();});};if(!Ext.util.EasterDate){Ext.util.EasterDate=function(e,k){if(typeof e==="undefined"){e=new Date().getFullYear();}e=parseInt(e,10);if(typeof k==="undefined"){k=0;}k=parseInt(k,10);var c=e%19;var f=(19*c+24)%30;var g=f+(2*(e%4)+4*(e%7)+6*f+5)%7;if((g==35)||((g==34)&&(f==28)&&(c>10))){g-=7;}var b=new Date(e,2,22);b.setTime(b.getTime()+86400000*g+86400000*k);return b;};}Ext.namespace("Ext.ux","Ext.ux.form");Ext.ux.DatePickerPlus=Ext.extend(Ext.DatePicker,{version:"1.4",noOfMonth:1,noOfMonthPerRow:3,fillupRows:true,eventDates:function(a){return[];},styleDisabledDates:false,eventDatesSelectable:true,defaultEventDatesText:"",defaultEventDatesCls:"x-datepickerplus-eventdates",setEventDates:function(c,d){if(typeof d==="undefined"){d=true;}this.edArray=[];for(var b=0,a=c.length;b<a;++b){if(Ext.isDate(c[b])){this.edArray.push({date:c[b],text:this.defaultEventDatesText,cls:this.defaultEventDatesCls});}else{if(c[b].date){c[b].date=this.jsonDate(c[b].date);this.edArray.push(c[b]);}}}this.eventDates=function(e){return this.edArray;};if(this.rendered&&d){this.eventDatesNumbered=this.convertCSSDatesToNumbers(this.eventDates(this.activeDate.getFullYear()));this.update(this.activeDate);}},eventDatesRE:false,eventDatesRECls:"",eventDatesREText:"",showWeekNumber:true,weekName:"Wk.",selectWeekText:"Click to select all days of this week",selectMonthText:"Click to select all weeks of this month",multiSelection:false,multiSelectByCTRL:true,selectedDates:[],prevNextDaysView:"mark",preSelectedDates:[],lastSelectedDate:false,markNationalHolidays:true,nationalHolidaysCls:"x-datepickerplus-nationalholidays",nationalHolidays:function(d){d=(typeof d==="undefined"?(this.lastRenderedYear?this.lastRenderedYear:new Date().getFullYear()):parseInt(d,10));var f=new Date(d,0,1).getDay();var k=new Date(d,1,1).getDay();var b=new Date(d,4,1).getDay();var g=new Date(d,8,1).getDay();var e=new Date(d,9,1).getDay();var a=new Date(d,10,1).getDay();var c=[{text:"New Year's Day",date:new Date(d,0,1)},{text:"Martin Luther King Day",date:new Date(d,0,(f>1?16+7-f:16-f))},{text:"Washington's Birthday",date:new Date(d,1,(k>1?16+7-k:16-k))},{text:"Memorial Day",date:new Date(d,4,(b==6?31:30-b))},{text:"Independence Day",date:new Date(d,6,4)},{text:"Labor Day",date:new Date(d,8,(g>1?2+7-g:2-g))},{text:"Columbus Day",date:new Date(d,9,(e>1?9+7-e:9-e))},{text:"Veterans Day",date:new Date(d,10,11)},{text:"Thanksgiving Day",date:new Date(d,10,(a>4?26+7-a:26-a))},{text:"Christmas Day",date:new Date(d,11,25)}];return c;},markWeekends:true,weekendCls:"x-datepickerplus-weekends",weekendText:"",weekendDays:[6,0],useQuickTips:true,pageKeyWarp:1,maxSelectionDays:false,maxSelectionDaysTitle:"Datepicker",maxSelectionDaysText:"You can only select a maximum amount of %0 days",undoText:"Undo",stayInAllowedRange:true,summarizeHeader:false,resizable:false,renderOkUndoButtons:true,renderTodayButton:true,disablePartialUnselect:true,allowedDates:false,allowedDatesText:"",strictRangeSelect:false,displayMask:3,displayMaskText:"Please wait...",renderPrevNextButtons:true,renderPrevNextYearButtons:false,disableMonthPicker:false,nextYearText:"Next Year (Control+Up)",prevYearText:"Previous Year (Control+Down)",showActiveDate:false,shiftSpaceSelect:true,disabledLetter:false,allowMouseWheel:true,focus:Ext.emptyFn,initComponent:function(){Ext.ux.DatePickerPlus.superclass.initComponent.call(this);this.noOfMonthPerRow=this.noOfMonthPerRow>this.noOfMonth?this.noOfMonth:this.noOfMonthPerRow;this.addEvents("beforeyearchange","afteryearchange","beforemonthchange","aftermonthchange","beforemonthclick","beforeweekclick","beforedateclick","aftermonthclick","afterweekclick","afterdateclick","undo","beforemousewheel","beforemaxdays");},activeDateKeyNav:function(e){if(this.showActiveDate){this.activeDate=this.activeDate.add("d",e);var d=this.activeDateCell.split("#");var c=parseInt(d[0],10);var b=parseInt(d[1],10);var a=Ext.get(this.cellsArray[c].elements[b]);if((b+e>41&&c+1>=this.cellsArray.length)||(b+e<0&&c-1<0)){this.update(this.activeDate);}else{a.removeClass("x-datepickerplus-activedate");b+=e;if(b>41){b-=42;c++;}else{if(b<0){b+=42;c--;}}a=Ext.get(this.cellsArray[c].elements[b]);a.addClass("x-datepickerplus-activedate");this.activeDateCell=c+"#"+b;}}},handleMouseWheel:function(c){if(this.fireEvent("beforemousewheel",this,c)!==false){var a=(this.activeDate?this.activeDate.getMonth():99);var d=(this.activeDate?this.activeDate.getFullYear():0);Ext.ux.DatePickerPlus.superclass.handleMouseWheel.call(this,c);var f=(this.activeDate?this.activeDate.getMonth():999);var b=(this.activeDate?this.activeDate.getFullYear():9999);if(a!=f){this.fireEvent("aftermonthchange",this,a,f);}if(d!=b){this.fireEvent("afteryearchange",this,d,b);}}},onRender:function(s,L){if(this.noOfMonthPerRow===0){this.noOfMonthPerRow=1;}if(this.fillupRows&&this.noOfMonthPerRow>1&&this.noOfMonth%this.noOfMonthPerRow!==0){this.noOfMonth+=(this.noOfMonthPerRow-(this.noOfMonth%this.noOfMonthPerRow));}var a=(Ext.isIE?" x-datepickerplus-ie":"");var z=['<table cellspacing="0"',(this.multiSelection?' class="x-date-multiselect'+a+'" ':(a!==""?'class="'+a+'" ':"")),">"];z.push("<tr>");var J=(Ext.isIE?'<img src="'+Ext.BLANK_IMAGE_URL+'" />':"");var y=(this.multiSelection?(this.useQuickTips?' ext:qtip="'+this.selectWeekText+'" ':' title="'+this.selectWeekText+'" '):"");var o=(this.markWeekends&&this.weekendText!==""?(this.useQuickTips?' ext:qtip="'+this.weekendText+'" ':' title="'+this.weekendText+'" '):"");var G=["<thead><tr>"];if(this.showWeekNumber){G.push('<th class="x-date-weeknumber-header"><a href="#" hidefocus="on" class="x-date-weeknumber" tabIndex="1"><em><span ',(this.multiSelection?(this.useQuickTips?' ext:qtip="'+this.selectMonthText+'" ':' title="'+this.selectMonthText+'" '):""),">"+this.weekName+"</span></em></a></th>");}var B=this.dayNames;for(var D=0;D<7;++D){var I=this.startDay+D;if(I>6){I=I-7;}G.push("<th><span>",B[I].substr(0,1),"</span></th>");}G.push("</tr></thead><tbody><tr>");if(this.showWeekNumber){G.push('<td class="x-date-weeknumber-cell"><a href="#" hidefocus="on" class="x-date-weeknumber" tabIndex="1"><em><span ',y,"></span></em></a></td>");}for(var C=0;C<42;++C){if(C%7===0&&C>0){if(this.showWeekNumber){G.push('</tr><tr><td class="x-date-weeknumber-cell"><a href="#" hidefocus="on" class="x-date-weeknumber" tabIndex="1"><em><span ',y,"></span></em></a></td>");}else{G.push("</tr><tr>");}}G.push('<td class="x-date-date-cell"><a href="#" hidefocus="on" class="x-date-date" tabIndex="1"><em><span ',(this.weekendDays.indexOf((C+this.startDay)%7)!=-1?o:""),"></span></em></a></td>");}G.push("</tr></tbody></table></td></tr></table></td>");var f=G.join("");if(this.summarizeHeader&&this.noOfMonth>1){z.push('<td align="center" id="',this.id,'-summarize" colspan="',this.noOfMonthPerRow,'" class="x-date-middle x-date-pickerplus-middle"></td></tr>');z.push("<tr>");}for(var r=0,w=this.noOfMonth;r<w;++r){z.push('<td><table class="x-date-pickerplus',(r%this.noOfMonthPerRow===0?"":" x-date-monthtable"),(!this.prevNextDaysView?" x-date-pickerplus-prevnexthide":""),'" cellspacing="0"><tr>');if(r===0){z.push('<td class="x-date-left">');if(this.renderPrevNextButtons){z.push('<a class="npm" href="#" ',(this.useQuickTips?' ext:qtip="'+this.prevText+'" ':' title="'+this.prevText+'" '),"></a>");}if(this.renderPrevNextYearButtons){z.push('<a class="npy" href="#" ',(this.useQuickTips?' ext:qtip="'+this.prevYearText+'" ':' title="'+this.prevYearText+'" '),"></a>");}z.push("</td>");}else{if(r==this.noOfMonthPerRow-1){if(this.renderPrevNextButtons){z.push('<td class="x-date-dummy x-date-middle">',J,"</td>");}}}z.push("<td class='x-date-middle x-date-pickerplus-middle",(r===0&&!this.disableMonthPicker?" x-date-firstMonth":""),"' align='center'>");if(r>0||this.disableMonthPicker){z.push('<span id="',this.id,"-monthLabel",r,'"></span>');}z.push("</td>");if(r==this.noOfMonthPerRow-1){z.push('<td class="x-date-right">');if(this.renderPrevNextButtons){z.push('<a class="npm" href="#" ',(this.useQuickTips?' ext:qtip="'+this.nextText+'" ':' title="'+this.nextText+'" '),"></a>");}if(this.renderPrevNextYearButtons){z.push('<a class="npy" href="#" ',(this.useQuickTips?' ext:qtip="'+this.nextYearText+'" ':' title="'+this.nextYearText+'" '),"></a>");}z.push("</td>");}else{if(r===0){if(this.renderPrevNextButtons){z.push('<td class="x-date-dummy x-date-middle">',J,"</td>");}}}z.push("</tr><tr><td",(r===0||r==this.noOfMonthPerRow-1?' colspan="3" ':""),'><table class="x-date-inner" id="',this.id,"-inner-date",r,'" cellspacing="0">');z.push(f);if((r+1)%this.noOfMonthPerRow===0){z.push("</tr><tr>");}}z.push("</tr>");z.push("<tr><td",(this.noOfMonthPerRow>1?' colspan="'+this.noOfMonthPerRow+'"':""),' class="x-date-bottom" align="center"><div><table width="100%" cellpadding="0" cellspacing="0"><tr><td align="right" class="x-date-multiokbtn">',J,'</td><td align="center" class="x-date-todaybtn">',J,'</td><td align="left" class="x-date-multiundobtn">',J,"</td></tr></table></div></td></tr>");z.push('</table><div class="x-date-mp"></div>');var c=document.createElement("div");c.className="x-date-picker";c.innerHTML=z.join("");s.dom.insertBefore(c,L);this.el=Ext.get(c);this.eventEl=Ext.get(c.firstChild);if(this.renderPrevNextButtons){var p=new Ext.util.ClickRepeater(this.el.child("td.x-date-left a.npm"),{handler:this.showPrevMonth,scope:this,preventDefault:true,stopDefault:true});var l=new Ext.util.ClickRepeater(this.el.child("td.x-date-right a.npm"),{handler:this.showNextMonth,scope:this,preventDefault:true,stopDefault:true});}if(this.renderPrevNextYearButtons){var A=new Ext.util.ClickRepeater(this.el.child("td.x-date-left a.npy"),{handler:this.showPrevYear,scope:this,preventDefault:true,stopDefault:true});var v=new Ext.util.ClickRepeater(this.el.child("td.x-date-right a.npy"),{handler:this.showNextYear,scope:this,preventDefault:true,stopDefault:true});}if(this.allowMouseWheel){this.eventEl.on("mousewheel",this.handleMouseWheel,this);}if(!this.disableMonthPicker){this.monthPicker=this.el.down("div.x-date-mp");this.monthPicker.enableDisplayMode("block");}var b=new Ext.KeyNav(this.eventEl,{left:function(d){(!this.disabled&&d.ctrlKey&&(!this.disableMonthPicker||this.renderPrevNextButtons)?this.showPrevMonth():this.activeDateKeyNav(-1));},right:function(d){(!this.disabled&&d.ctrlKey&&(!this.disableMonthPicker||this.renderPrevNextButtons)?this.showNextMonth():this.activeDateKeyNav(1));},up:function(d){(!this.disabled&&d.ctrlKey&&(!this.disableMonthPicker||this.renderPrevNextYearButtons)?this.showNextYear():this.activeDateKeyNav(-7));},down:function(d){(!this.disabled&&d.ctrlKey&&(!this.disableMonthPicker||this.renderPrevNextYearButtons)?this.showPrevYear():this.activeDateKeyNav(7));},pageUp:function(d){if(!this.disabled){this.update(this.activeDate.add("mo",this.pageKeyWarp*(-1)));}},pageDown:function(d){if(!this.disabled){this.update(this.activeDate.add("mo",this.pageKeyWarp));}},enter:function(d){d.stopPropagation();if(!this.disabled){if(this.multiSelection){this.okClicked();}else{this.finishDateSelection(this.activeDate);}}return true;},scope:this});if(!this.disableSingleDateSelection){this.eventEl.on("click",this.handleDateClick,this,{delegate:"a.x-date-date"});}if(this.multiSelection&&this.showWeekNumber){this.eventEl.on("click",this.handleWeekClick,this,{delegate:"a.x-date-weeknumber"});}this.eventEl.addKeyListener(Ext.EventObject.SPACE,this.spaceKeyPressed,this);this.cellsArray=[];this.textNodesArray=[];this.weekNumberCellsArray=[];this.weekNumberTextElsArray=[];this.weekNumberHeaderCellsArray=[];var n,g,F,e,u;for(var q=0,K=this.noOfMonth;q<K;++q){n=Ext.get(this.id+"-inner-date"+q).select("tbody td.x-date-date-cell");g=Ext.get(this.id+"-inner-date"+q).query("tbody td.x-date-date-cell span");this.cellsArray[q]=n;this.textNodesArray[q]=g;if(this.showWeekNumber){F=Ext.get(this.id+"-inner-date"+q).select("tbody td.x-date-weeknumber-cell");e=Ext.get(this.id+"-inner-date"+q).select("tbody td.x-date-weeknumber-cell span");this.weekNumberCellsArray[q]=F;this.weekNumberTextElsArray[q]=e;u=Ext.get(this.id+"-inner-date"+q).select("th.x-date-weeknumber-header");this.weekNumberHeaderCellsArray[q]=u;}}if(!this.disableMonthPicker){this.mbtn=new Ext.Button({text:" ",tooltip:this.monthYearText,renderTo:this.el.child("td.x-date-firstMonth",true)});this.mbtn.on("click",this.showMonthPickerPlus,this);this.mbtn.el.child(this.mbtn.menuClassTarget).addClass("x-btn-with-menu");}if(this.renderTodayButton||this.showToday){var H=new Date().dateFormat(this.format);this.todayBtn=new Ext.Button({renderTo:this.el.child("td.x-date-bottom .x-date-todaybtn",true),text:String.format(this.todayText,H),tooltip:String.format(this.todayTip,H),handler:this.selectToday,scope:this});}if(this.multiSelection&&this.renderOkUndoButtons){this.OKBtn=new Ext.Button({renderTo:this.el.child("td.x-date-bottom .x-date-multiokbtn",true),text:this.okText,handler:this.okClicked,scope:this});this.undoBtn=new Ext.Button({renderTo:this.el.child("td.x-date-bottom .x-date-multiundobtn",true),text:this.undoText,handler:function(){if(!this.disabled){this.fireEvent("undo",this,this.preSelectedDates);this.preSelectedDates=[];for(var k=0,d=this.selectedDates.length;k<d;++k){this.preSelectedDates.push(this.selectedDates[k].clearTime().getTime());}this.update(this.activeDate);}},scope:this});}if(Ext.isIE){this.el.repaint();}this.preSelectedDates=[];for(var t=0,E=this.selectedDates.length;t<E;++t){this.preSelectedDates.push(this.selectedDates[t].clearTime().getTime());}this.update(this.value);},showMonthPickerPlus:function(){if(!this.disabled){this.showMonthPicker();}},convertCSSDatesToNumbers:function(c){var d=[[],[],[]];for(var b=0,a=c.length;b<a;++b){d[0][b]=c[b].date.clearTime().getTime();d[1][b]=(c[b].text?c[b].text:this.defaultEventDatesText);d[2][b]=(c[b].cls?c[b].cls:this.defaultEventDatesCls);}return d;},clearSelectedDates:function(a){if(typeof a==="undefined"){a=true;}this.selectedDates=[];this.preSelectedDates=[];if(this.rendered&&a){this.update(this.activeDate);}},jsonDate:function(c){if(!Ext.isArray(c)){if(typeof c==="string"){return Date.parseDate(c.replace(/T/," "),"Y-m-d H:i:s");}}else{for(var b=0,a=c.length;b<a;b++){if(typeof c[b]==="string"){c[b]=Date.parseDate(c[b].replace(/T/," "),"Y-m-d H:i:s");}}}return c;},setSelectedDates:function(e,g){if(typeof g==="undefined"){g=true;}e=this.jsonDate(e);if(!Ext.isArray(e)){e=[e];}var f,c;for(var b=0,a=e.length;b<a;++b){f=e[b];c=f.clearTime().getTime();if(this.preSelectedDates.indexOf(c)==-1){this.preSelectedDates.push(c);this.selectedDates.push(f);}}if(this.rendered&&g){this.update(this.activeDate);}},setAllowedDates:function(a,b){if(typeof b==="undefined"){b=true;}this.allowedDates=this.jsonDate(a);if(this.rendered&&b){this.update(this.activeDate);}},setMinDate:function(a){this.minDate=this.jsonDate(a);this.update(this.value,true);},setMaxDate:function(a){this.maxDate=this.jsonDate(a);this.update(this.value,true);},setDateLimits:function(a,b){this.minDate=this.jsonDate(a);this.maxDate=this.jsonDate(b);this.update(this.value,true);},update:function(Y,c,B){if(typeof B==="undefined"){B=false;}if(typeof c==="undefined"){c=false;}if(c){var s=this.activeDate;this.activeDate=null;Y=s;}var v=(this.displayMask&&(isNaN(this.displayMask)||this.noOfMonth>this.displayMask)?true:false);if(!B&&v){this.el.mask(this.displayMaskText);this.update.defer(10,this,[Y,false,true]);return false;}if(this.stayInAllowedRange&&(this.minDate||this.maxDate)){if(this.minDate&&(this.minDate.getFullYear()>Y.getFullYear()||(this.minDate.getMonth()>Y.getMonth()&&this.minDate.getFullYear()==Y.getFullYear()))){Y=new Date(this.minDate.getTime());}else{if(this.maxDate&&(this.maxDate.getFullYear()<Y.getFullYear()||(this.maxDate.getMonth()<Y.getMonth()&&this.maxDate.getFullYear()==Y.getFullYear()))){Y=new Date(this.maxDate.getTime());}}}var I=Y.getMonth();var T=(this.activeDate?this.activeDate.getMonth():I);var R=Y.getFullYear();var A=(this.activeDate?this.activeDate.getFullYear():R);if(T!=I){this.fireEvent("beforemonthchange",this,T,I);}if(A!=R){this.fireEvent("beforeyearchange",this,A,R);}this.activeDate=Y.clearTime();this.preSelectedCells=[];this.lastSelectedDateCell="";this.activeDateCell="";var Z=(this.lastSelectedDate?this.lastSelectedDate:0);var u=new Date().clearTime().getTime();var ae=this.minDate?this.minDate.clearTime().getTime():Number.NEGATIVE_INFINITY;var z=this.maxDate?this.maxDate.clearTime().getTime():Number.POSITIVE_INFINITY;var O=this.disabledDatesRE;var H=this.disabledDatesText;var M=this.disabledDays?this.disabledDays.join(""):false;var b=this.disabledDaysText;var P=this.eventDatesRE;var p=this.eventDatesRECls;var o=this.eventDatesREText;var l=this.allowedDatesText;var D=this.format;var aa=this.activeDate.getTime();this.todayMonthCell=false;this.todayDayCell=false;if(this.allowedDates){this.allowedDatesT=[];for(var U=0,ad=this.allowedDates.length;U<ad;++U){this.allowedDatesT.push(this.allowedDates[U].clearTime().getTime());}}var G=function(e,ak,an,ai){var al,ah=Ext.get(ak),aj=Ext.get(an),am=ai.getTime(),w=false,k;ak.title="";ak.firstChild.dateValue=am;var x=ai.getFullYear();if(e.lastRenderedYear!==x){e.lastRenderedYear=x;if(e.markNationalHolidays){e.nationalHolidaysNumbered=e.convertCSSDatesToNumbers(e.nationalHolidays(x));}e.eventDatesNumbered=e.convertCSSDatesToNumbers(e.eventDates(x));}if(am<ae){ak.className=" x-date-disabled";w=e.minText;}if(am>z){ak.className=" x-date-disabled";w=e.maxText;}if(M){if(M.indexOf(ai.getDay())!=-1){w=b;ak.className=" x-date-disabled";}}if(O&&D){k=ai.dateFormat(D);if(O.test(k)){w=H.replace("%0",k);ak.className=" x-date-disabled";}}if(e.allowedDates&&e.allowedDatesT.indexOf(am)==-1){ak.className=" x-date-disabled";w=l;}if(e.markWeekends&&e.weekendDays.indexOf(ai.getDay())!=-1&&!ah.hasClass("x-date-disabled")){ah.addClass(e.weekendCls);}if(!ah.hasClass("x-date-disabled")||e.styleDisabledDates){if(e.eventDatesNumbered[0].length>0){al=e.eventDatesNumbered[0].indexOf(am);if(al!=-1){if(e.eventDatesNumbered[2][al]!==""){ah.addClass(e.eventDatesNumbered[2][al]+(e.eventDatesSelectable?"":"-disabled"));w=(e.eventDatesNumbered[1][al]!==""?e.eventDatesNumbered[1][al]:false);}}}if(P&&D){k=ai.dateFormat(D);if(P.test(k)){w=o.replace("%0",k);ak.className=p;}}}if(!ah.hasClass("x-date-disabled")){if(e.markNationalHolidays&&e.nationalHolidaysNumbered[0].length>0){al=e.nationalHolidaysNumbered[0].indexOf(am);if(al!=-1){ah.addClass(e.nationalHolidaysCls);w=(e.nationalHolidaysNumbered[1][al]!==""?e.nationalHolidaysNumbered[1][al]:false);}}if(e.preSelectedDates.indexOf(am)!=-1){ah.addClass("x-date-selected");e.preSelectedCells.push(ak.firstChild.monthCell+"#"+ak.firstChild.dayCell);}if(am==Z){e.lastSelectedDateCell=ak.firstChild.monthCell+"#"+ak.firstChild.dayCell;}}else{if(e.disabledLetter){an.innerHTML=e.disabledLetter;}}if(am==u){ah.addClass("x-date-today");w=e.todayText;}if(e.showActiveDate&&am==aa&&e.activeDateCell===""){ah.addClass("x-datepickerplus-activedate");e.activeDateCell=ak.firstChild.monthCell+"#"+ak.firstChild.dayCell;}if(w){if(e.useQuickTips){Ext.QuickTips.register({target:aj,text:w});}else{ak.title=w;}}};var y,N,m,r,C,t,a,ac,E,V,X,q,S,Q,n,f,g,L;var F=[];for(var K=0,J=this.noOfMonth;K<J;++K){if(this.summarizeHeader&&this.noOfMonth>1&&(K===0||K==this.noOfMonth-1)){F.push(this.monthNames[Y.getMonth()]," ",Y.getFullYear());if(K===0){F.push(" - ");}}y=this.cellsArray[K].elements;N=this.textNodesArray[K];if((this.markNationalHolidays||this.eventDates.length>0)&&this.useQuickTips){for(var ab=0,W=N.length;ab<W;++ab){Ext.QuickTips.unregister(N[ab]);}}m=Y.getDaysInMonth();r=Y.getFirstDateOfMonth();C=r.getDay()-this.startDay;if(C<=this.startDay){C+=7;}t=Y.add("mo",-1);a=t.getDaysInMonth()-C;m+=C;ac=new Date(t.getFullYear(),t.getMonth(),a).clearTime();V=0;if(this.showWeekNumber){q=this.weekNumberCellsArray[K].elements;S=this.weekNumberTextElsArray[K].elements;Q=ac.clone();Q.setDate(Q.getDate()+7);n=this.weekNumberHeaderCellsArray[K].elements;n[0].firstChild.monthValue=Y.getMonth();n[0].firstChild.dateValue=Q.getTime();n[0].firstChild.monthCell=K;n[0].firstChild.dayCell=0;while(V<q.length){S[V].innerHTML=Q.getWeekOfYear();q[V].firstChild.dateValue=Q.getTime();q[V].firstChild.monthCell=K;q[V].firstChild.dayCell=(V*7);Q.setDate(Q.getDate()+7);V++;}V=0;}for(;V<C;++V){N[V].innerHTML=(++a);y[V].firstChild.monthCell=K;y[V].firstChild.dayCell=V;ac.setDate(ac.getDate()+1);y[V].className="x-date-prevday";G(this,y[V],N[V],ac);}for(;V<m;++V){X=V-C+1;N[V].innerHTML=(X);y[V].firstChild.monthCell=K;y[V].firstChild.dayCell=V;ac.setDate(ac.getDate()+1);y[V].className="x-date-active";G(this,y[V],N[V],ac);if(ac.getTime()==u){this.todayMonthCell=K;this.todayDayCell=V;}}var ag=0;for(;V<42;++V){N[V].innerHTML=(++ag);y[V].firstChild.monthCell=K;y[V].firstChild.dayCell=V;ac.setDate(ac.getDate()+1);y[V].className="x-date-nextday";G(this,y[V],N[V],ac);}if(K===0&&!this.disableMonthPicker){this.mbtn.setText(this.monthNames[Y.getMonth()]+" "+Y.getFullYear());}else{f=Ext.get(this.id+"-monthLabel"+K);f.update(this.monthNames[Y.getMonth()]+" "+Y.getFullYear());}Y=Y.add("mo",1);if(!this.internalRender){g=this.el.dom.firstChild;L=g.offsetWidth;this.el.setWidth(L+this.el.getBorderWidth("lr"));Ext.fly(g).setWidth(L);this.internalRender=true;}}if(this.summarizeHeader&&this.noOfMonth>1){var af=Ext.get(this.id+"-summarize");af.update(F.join(""));}this.el.unmask();if(T!=I){this.fireEvent("aftermonthchange",this,T,I);}if(A!=R){this.fireEvent("afteryearchange",this,A,R);}},beforeDestroy:function(){if(this.rendered){if(this.mbtn){this.mbtn.destroy();}if(this.todayBtn){this.todayBtn.destroy();}if(this.OKBtn){this.OKBtn.destroy();}if(this.undoBtn){this.undoBtn.destroy();}}},handleWeekClick:function(r,u){if(!this.disabled){r.stopEvent();var p=new Date(u.dateValue).getFirstDateOfWeek(this.startDay),o=0,a,l,b;var m=u.monthCell;var f=u.dayCell;switch(u.parentNode.tagName.toUpperCase()){case"TH":o=42;a=u.monthValue;break;case"TD":o=7;break;}if((o==42&&this.fireEvent("beforemonthclick",this,a,this.lastStateWasSelected)!==false)||(o==7&&this.fireEvent("beforeweekclick",this,p,this.lastStateWasSelected)!==false)){if(!Ext.EventObject.ctrlKey&&this.multiSelectByCTRL){this.removeAllPreselectedClasses();}b=true;if(this.disablePartialUnselect){var d=p;for(var g=0;g<o;++g){l=d.getMonth();if((o==7||l===a)&&this.preSelectedDates.indexOf(d.clearTime().getTime())==-1){b=false;break;}d=d.add(Date.DAY,1);}}var s=false;var q=1;if(this.strictRangeSelect&&((this.preSelectedDates.indexOf(p.add(Date.DAY,-1).clearTime().getTime())==-1&&!b)||(this.preSelectedDates.indexOf(p.add(Date.DAY,-1).clearTime().getTime())!=-1&&b))){s=true;p=p.add(Date.DAY,o-1);q=-1;}this.maxNotified=false;for(var n=0,c;n<o;++n){l=p.getMonth();c=(s?o-1-n:n);if(o==7||l===a){this.markDateAsSelected(p.clearTime().getTime(),true,m,f+c,b);}p=p.add(Date.DAY,q);}if(o==42){this.fireEvent("aftermonthclick",this,a,this.lastStateWasSelected);}else{this.fireEvent("afterweekclick",this,new Date(u.dateValue).getFirstDateOfWeek(this.startDay),this.lastStateWasSelected);}}}},markDateAsSelected:function(f,e,d,b,c){var k=Ext.get(this.cellsArray[d].elements[b]);if((k.hasClass("x-date-prevday")||k.hasClass("x-date-nextday"))&&this.prevNextDaysView!=="mark"){return false;}if(this.multiSelection&&(Ext.EventObject.ctrlKey||e)){var a=new Date(f).add(Date.DAY,-1).clearTime().getTime();var g=new Date(f).add(Date.DAY,1).clearTime().getTime();if(this.preSelectedDates.indexOf(f)==-1){if(this.maxSelectionDays===this.preSelectedDates.length){if(!this.maxNotified){if(this.fireEvent("beforemaxdays",this)!==false){Ext.Msg.alert(this.maxSelectionDaysTitle,this.maxSelectionDaysText.replace(/%0/,this.maxSelectionDays));}this.maxNotified=true;}return false;}if(k.hasClass("x-date-disabled")){return false;}if(this.strictRangeSelect&&this.preSelectedDates.indexOf(g)==-1&&this.preSelectedDates.indexOf(a)==-1&&this.preSelectedDates.length>0){return false;}this.preSelectedDates.push(f);this.markSingleDays(d,b,false);this.markGhostDatesAlso(d,b,false);this.lastStateWasSelected=true;}else{if(c&&(!this.strictRangeSelect||(this.strictRangeSelect&&((this.preSelectedDates.indexOf(g)==-1&&this.preSelectedDates.indexOf(a)!=-1)||(this.preSelectedDates.indexOf(g)!=-1&&this.preSelectedDates.indexOf(a)==-1))))){this.preSelectedDates.remove(f);this.markSingleDays(d,b,true);this.markGhostDatesAlso(d,b,true);this.lastStateWasSelected=false;}}}else{this.removeAllPreselectedClasses();this.preSelectedDates=[f];this.preSelectedCells=[];this.markSingleDays(d,b,false);this.markGhostDatesAlso(d,b,false);this.lastStateWasSelected=true;}this.lastSelectedDate=f;this.lastSelectedDateCell=d+"#"+b;if(this.multiSelection&&!this.renderOkUndoButtons){this.copyPreToSelectedDays();}return true;},markSingleDays:function(c,b,a){if(!a){Ext.get(this.cellsArray[c].elements[b]).addClass("x-date-selected");this.preSelectedCells.push((c)+"#"+(b));}else{Ext.get(this.cellsArray[c].elements[b]).removeClass("x-date-selected");this.preSelectedCells.remove((c)+"#"+(b));}},markGhostDatesAlso:function(c,b,a){if(this.prevNextDaysView=="mark"){var e=Ext.get(this.cellsArray[c].elements[b]),d;if(e.hasClass("x-date-prevday")&&c>0){d=(5-Math.floor(b/7))*7;if(Ext.get(this.cellsArray[c-1].elements[b+d]).hasClass("x-date-nextday")){d-=7;}this.markSingleDays(c-1,b+d,a);}else{if(e.hasClass("x-date-nextday")&&c<this.cellsArray.length-1){d=28;if(this.cellsArray[c].elements[b].firstChild.firstChild.firstChild.innerHTML!=this.cellsArray[c+1].elements[b-d].firstChild.firstChild.firstChild.innerHTML){d=35;}this.markSingleDays(c+1,b-d,a);}else{if(e.hasClass("x-date-active")&&((b<14&&c>0)||(b>27&&c<this.cellsArray.length-1))){if(b<14){d=28;if(!Ext.get(this.cellsArray[c-1].elements[b+d]).hasClass("x-date-nextday")){d=35;}if(b+d<42&&this.cellsArray[c].elements[b].firstChild.firstChild.firstChild.innerHTML==this.cellsArray[c-1].elements[b+d].firstChild.firstChild.firstChild.innerHTML){this.markSingleDays(c-1,b+d,a);}}else{d=28;if(!Ext.get(this.cellsArray[c+1].elements[b-d]).hasClass("x-date-prevday")){d=35;}if(b-d>=0&&this.cellsArray[c].elements[b].firstChild.firstChild.firstChild.innerHTML==this.cellsArray[c+1].elements[b-d].firstChild.firstChild.firstChild.innerHTML){this.markSingleDays(c+1,b-d,a);}}}}}}},removeAllPreselectedClasses:function(){for(var c=0,b=this.preSelectedCells.length;c<b;++c){var a=this.preSelectedCells[c].split("#");Ext.get(this.cellsArray[a[0]].elements[a[1]]).removeClass("x-date-selected");}this.preSelectedDates=[];this.preSelectedCells=[];},handleDateClick:function(A,o){A.stopEvent();var a=Ext.fly(o.parentNode);if(!this.disabled&&o.dateValue&&!a.hasClass("x-date-disabled")&&!a.hasClass("x-datepickerplus-eventdates-disabled")&&this.fireEvent("beforedateclick",this,A)!==false){if((!a.hasClass("x-date-prevday")&&!a.hasClass("x-date-nextday"))||this.prevNextDaysView=="mark"){var u=Ext.EventObject;if((!u.ctrlKey&&this.multiSelectByCTRL)||u.shiftKey||!this.multiSelection){this.removeAllPreselectedClasses();}var n=(((!u.ctrlKey&&!this.multiSelectByCTRL)||u.shiftKey)&&this.multiSelection?true:false);if(u.shiftKey&&this.multiSelection&&this.lastSelectedDate){var D=this.lastSelectedDate;var f=o.dateValue;var k=(D<f?1:-1);var s=this.lastSelectedDateCell.split("#");var w=parseInt(s[0],10);var y=parseInt(s[1],10);var m,l=0,g=0;this.maxNotified=false;var q=this.activeDate.getFirstDateOfMonth().clearTime().getTime();var p=this.activeDate.add(Date.MONTH,this.noOfMonth-1).getLastDateOfMonth().clearTime().getTime();if(D<q||D>p){var v=this.minDate?this.minDate.clearTime().getTime():Number.NEGATIVE_INFINITY;var x=this.maxDate?this.maxDate.clearTime().getTime():Number.POSITIVE_INFINITY;var E=this.disabledDays?this.disabledDays.join(""):"";var C=this.disabledDatesRE;var z=this.format;var r=this.allowedDates?this.allowedDatesT:false;var B,c,b;while(D<q||D>p){B=new Date(D);c=false;if(C){b=B.dateFormat(z);c=C.test(b);}if(!(D<v)&&!(D>x)&&E.indexOf(B.getDay())==-1&&!c&&(!r||r.indexOf(D)!=-1)){if(this.maxSelectionDays===this.preSelectedDates.length){if(this.fireEvent("beforemaxdays",this)!==false){Ext.Msg.alert(this.maxSelectionDaysTitle,this.maxSelectionDaysText.replace(/%0/,this.maxSelectionDays));}break;}this.preSelectedDates.push(D);}D=new Date(D).add(Date.DAY,k).clearTime().getTime();}w=(k>0?0:this.cellsArray.length-1);y=(k>0?0:41);m=Ext.get(this.cellsArray[w].elements[y]);while(m.hasClass("x-date-prevday")||m.hasClass("x-date-nextday")){m.addClass("x-date-selected");this.preSelectedCells.push((w)+"#"+(y));y+=k;m=Ext.get(this.cellsArray[w].elements[y]);}}while((f-D)*k>0&&w>=0&&w<this.cellsArray.length){this.markDateAsSelected(D,n,w,y,true);D=new Date(D).add(Date.DAY,k).clearTime().getTime();m=Ext.get(this.cellsArray[w].elements[y]);if(m.hasClass("x-date-active")){l=0;}else{l++;}y+=k;if(y==42){w++;y=(l>=7?14:7);}else{if(y<0){w--;y=34;m=Ext.get(this.cellsArray[w].elements[y]);if(m.hasClass("x-date-nextday")||l==7){y=27;}}}}}this.markDateAsSelected(o.dateValue,n,o.monthCell,o.dayCell,true);this.finishDateSelection(new Date(o.dateValue));}}},copyPreToSelectedDays:function(){this.selectedDates=[];for(var b=0,a=this.preSelectedDates.length;b<a;++b){this.selectedDates.push(new Date(this.preSelectedDates[b]));}},okClicked:function(){this.copyPreToSelectedDays();this.selectedDates=this.selectedDates.sortDates();this.fireEvent("select",this,this.selectedDates);},spaceKeyPressed:function(f){var d=(((!Ext.EventObject.ctrlKey&&!this.multiSelectByCTRL)||Ext.EventObject.shiftKey)&&this.multiSelection?true:false);if(!this.disabled&&this.shiftSpaceSelect==Ext.EventObject.shiftKey&&this.showActiveDate){var c=this.activeDateCell.split("#");var b=parseInt(c[0],10);var a=parseInt(c[1],10);this.markDateAsSelected(this.activeDate.getTime(),d,b,a,true);this.finishDateSelection(this.activeDate);}else{this.selectToday();}},finishDateSelection:function(a){this.setValue(a);if(this.multiSelection){this.fireEvent("afterdateclick",this,a,this.lastStateWasSelected);}else{this.fireEvent("afterdateclick",this,a,this.lastStateWasSelected);this.fireEvent("select",this,this.value);}},selectToday:function(){if(!this.disabled&&this.todayBtn&&!this.todayBtn.disabled){var a=new Date().clearTime();var b=a.getTime();if(typeof this.todayMonthCell==="number"){this.markDateAsSelected(b,false,this.todayMonthCell,this.todayDayCell,true);}else{if(this.multiSelection){this.update(a);}}this.finishDateSelection(a);}},setValue:function(a){if(Ext.isArray(a)){this.selectedDates=[];this.preSelectedDates=[];this.setSelectedDates(a,true);a=a[0];}this.value=a.clearTime(true);if(this.el&&!this.multiSelection&&this.noOfMonth==1){this.update(this.value);}},setSize:Ext.emptyFn});Ext.reg("datepickerplus",Ext.ux.DatePickerPlus);if(parseInt(Ext.version.substr(0,1),10)>2){Ext.menu.DateItem=Ext.ux.DatePickerPlus;Ext.override(Ext.menu.DateMenu,{initComponent:function(){this.on("beforeshow",this.onBeforeShow,this);if(this.strict=(Ext.isIE7&&Ext.isStrict)){this.on("show",this.onShow,this,{single:true,delay:20});}var a=(this.initialConfig.usePickerPlus?Ext.ux.DatePickerPlus:Ext.DatePicker);Ext.apply(this,{plain:true,showSeparator:false,items:this.picker=new a(Ext.apply({internalRender:this.strict||!Ext.isIE,ctCls:"x-menu-date-item"},this.initialConfig))});Ext.menu.DateMenu.superclass.initComponent.call(this);this.relayEvents(this.picker,["select"]);this.on("select",this.menuHide,this);if(this.handler){this.on("select",this.handler,this.scope||this);}}});}else{Ext.menu.DateItem=function(a){if(a&&a.usePickerPlus){Ext.menu.DateItem.superclass.constructor.call(this,new Ext.ux.DatePickerPlus(a),a);}else{Ext.menu.DateItem.superclass.constructor.call(this,new Ext.DatePicker(a),a);}this.picker=this.component;this.addEvents("select");this.picker.on("render",function(b){b.getEl().swallowEvent("click");b.container.addClass("x-menu-date-item");});this.picker.on("select",this.onSelect,this);};Ext.extend(Ext.menu.DateItem,Ext.menu.Adapter,{onSelect:function(b,a){this.fireEvent("select",this,a,b);Ext.menu.DateItem.superclass.handleClick.call(this);}});}if(Ext.form&&Ext.form.DateField){Ext.ux.form.DateFieldPlus=Ext.extend(Ext.form.DateField,{usePickerPlus:true,showWeekNumber:true,noOfMonth:1,noOfMonthPerRow:3,nationalHolidaysCls:"x-datepickerplus-nationalholidays",markNationalHolidays:true,eventDates:function(a){return[];},eventDatesRE:false,eventDatesRECls:"",eventDatesREText:"",multiSelection:false,multiSelectionDelimiter:",",multiSelectByCTRL:true,fillupRows:true,markWeekends:true,weekendText:"",weekendCls:"x-datepickerplus-weekends",weekendDays:[6,0],useQuickTips:true,pageKeyWarp:1,maxSelectionDays:false,resizable:false,renderTodayButton:true,renderOkUndoButtons:true,tooltipType:"qtip",allowedDates:false,allowedDatesText:"",renderPrevNextButtons:true,renderPrevNextYearButtons:false,disableMonthPicker:false,showActiveDate:false,shiftSpaceSelect:true,disabledLetter:false,allowMouseWheel:true,summarizeHeader:false,stayInAllowedRange:true,disableSingleDateSelection:false,eventDatesSelectable:false,styleDisabledDates:false,allowOtherMenus:false,onBeforeYearChange:function(a,c,b){this.fireEvent("beforeyearchange",this,c,b,a);},onAfterYearChange:function(a,c,b){this.fireEvent("afteryearchange",this,c,b,a);},onBeforeMonthChange:function(a,b,c){this.fireEvent("beforemonthchange",this,b,c,a);},onAfterMonthChange:function(a,b,c){this.fireEvent("aftermonthchange",this,b,c,a);},onAfterMonthClick:function(a,c,b){this.fireEvent("aftermonthclick",this,c,b,a);},onAfterWeekClick:function(b,a,c){this.fireEvent("afterweekclick",this,a,c,b);},onAfterDateClick:function(b,a,c){this.fireEvent("afterdateclick",this,a,c,b);},onBeforeMouseWheel:function(a,b){this.fireEvent("beforemousewheel",this,b,a);},onBeforeMaxDays:function(a){this.fireEvent("beforemaxdays",this,a);},onUndo:function(b,a){this.fireEvent("undo",this,a,b);},onTriggerClick:function(){if(this.disabled){return;}if(!this.menu){this.menu=new Ext.menu.DateMenu({allowOtherMenus:this.allowOtherMenus,usePickerPlus:this.usePickerPlus,noOfMonth:this.noOfMonth,noOfMonthPerRow:this.noOfMonthPerRow,listeners:{beforeyearchange:{fn:this.onBeforeYearChange,scope:this},afteryearchange:{fn:this.onAfterYearChange,scope:this},beforemonthchange:{fn:this.onBeforeMonthChange,scope:this},aftermonthchange:{fn:this.onAfterMonthChange,scope:this},afterdateclick:{fn:this.onAfterDateClick,scope:this},aftermonthclick:{fn:this.onAfterMonthClick,scope:this},afterweekclick:{fn:this.onAfterWeekClick,scope:this},beforemousewheel:{fn:this.onBeforeMouseWheel,scope:this},beforemaxdays:{fn:this.onBeforeMaxDays,scope:this},undo:{fn:this.onUndo,scope:this}}});this.relayEvents(this.menu,["select"]);}if(this.menu.isVisible()){this.menu.hide();return;}if(this.disabledDatesRE){this.ddMatch=this.disabledDatesRE;}if(typeof this.minDate=="string"){this.minDate=this.parseDate(this.minDate);}if(typeof this.maxDate=="string"){this.maxDate=this.parseDate(this.maxDate);}Ext.apply(this.menu.picker,{minDate:this.minValue||this.minDate,maxDate:this.maxValue||this.maxDate,disabledDatesRE:this.ddMatch,disabledDatesText:this.disabledDatesText,disabledDays:this.disabledDays,disabledDaysText:this.disabledDaysText,showToday:this.showToday,format:this.format,minText:String.format(this.minText,this.formatDate(this.minValue||this.minDate)),maxText:String.format(this.maxText,this.formatDate(this.maxValue||this.maxDate)),showWeekNumber:this.showWeekNumber,nationalHolidaysCls:this.nationalHolidaysCls,markNationalHolidays:this.markNationalHolidays,multiSelectByCTRL:this.multiSelectByCTRL,fillupRows:this.fillupRows,multiSelection:this.multiSelection,markWeekends:this.markWeekends,weekendText:this.weekendText,weekendCls:this.weekendCls,weekendDays:this.weekendDays,useQuickTips:this.useQuickTips,eventDates:this.eventDates,eventDatesRE:this.eventDatesRE,eventDatesRECls:this.eventDatesRECls,eventDatesREText:this.eventDatesREText,pageKeyWarp:this.pageKeyWarp,maxSelectionDays:this.maxSelectionDays,resizable:this.resizable,renderTodayButton:this.renderTodayButton,renderOkUndoButtons:this.renderOkUndoButtons,allowedDates:this.allowedDates,allowedDatesText:this.allowedDatesText,renderPrevNextButtons:this.renderPrevNextButtons,renderPrevNextYearButtons:this.renderPrevNextYearButtons,disableMonthPicker:this.disableMonthPicker,showActiveDate:this.showActiveDate,shiftSpaceSelect:this.shiftSpaceSelect,disabledLetter:this.disabledLetter,allowMouseWheel:this.allowMouseWheel,summarizeHeader:this.summarizeHeader,stayInAllowedRange:this.stayInAllowedRange,disableSingleDateSelection:this.disableSingleDateSelection,eventDatesSelectable:this.eventDatesSelectable,styleDisabledDates:this.styleDisabledDates});if(this.menuEvents){this.menuEvents("on");}else{this.menu.on(Ext.apply({},this.menuListeners,{scope:this}));}this.menu.picker.setValue(this.getValue()||new Date());this.menu.show(this.el,"tl-bl?");this.menu.focus();},setValue:function(a){var g=this;if(Ext.isArray(a)){var d=[];for(var f=0,b=a.length;f<b;++f){d.push(g.formatDate(a[f]));}var c=d.join(this.multiSelectionDelimiter);Ext.form.DateField.superclass.setValue.call(this,c);}else{Ext.form.DateField.superclass.setValue.call(this,this.formatDate(this.parseDate(a)));}},validateValue:function(c){if(this.multiSelection){var g=this;var a=c.split(this.multiSelectionDelimiter);var f=true;for(var d=0,b=a.length;d<b;++d){if(!Ext.ux.form.DateFieldPlus.superclass.validateValue.call(g,a[d])){f=false;}}return f;}else{return Ext.ux.form.DateFieldPlus.superclass.validateValue.call(this,c);}},getValue:function(){if(this.multiSelection){var c=Ext.form.DateField.superclass.getValue.call(this);var g=this;var a=c.split(this.multiSelectionDelimiter);var f=[];for(var d=0,b=a.length;d<b;++d){var k=g.parseDate(a[d]);if(k){f.push(k);}}return(f.length>0?f:"");}else{return Ext.ux.form.DateFieldPlus.superclass.getValue.call(this);}},beforeBlur:function(){if(this.multiSelection){this.setValue(this.getRawValue().split(this.multiSelectionDelimiter));}else{var a=this.parseDate(this.getRawValue());if(a){this.setValue(a);}}},submitFormat:"Y-m-d",submitFormatAddon:"-format",onRender:function(){Ext.ux.form.DateFieldPlus.superclass.onRender.apply(this,arguments);var a=this.name||this.el.dom.name||(this.id+this.submitFormatAddon);if(a==this.id){a+=this.submitFormatAddon;}this.hiddenField=this.el.insertSibling({tag:"input",type:"hidden",name:a,value:this.formatHiddenDate(this.parseDate(this.value))});this.hiddenName=a;this.el.dom.removeAttribute("name");this.el.on({keyup:{scope:this,fn:this.updateHidden},blur:{scope:this,fn:this.updateHidden}});this.setValue=this.setValue.createSequence(this.updateHidden);if(this.tooltip){if(typeof this.tooltip=="object"){Ext.QuickTips.register(Ext.apply({target:this.trigger},this.tooltip));}else{this.trigger.dom[this.tooltipType]=this.tooltip;}}},onDisable:function(){Ext.ux.form.DateFieldPlus.superclass.onDisable.apply(this,arguments);if(this.hiddenField){this.hiddenField.dom.setAttribute("disabled","disabled");}},onEnable:function(){Ext.ux.form.DateFieldPlus.superclass.onEnable.apply(this,arguments);if(this.hiddenField){this.hiddenField.dom.removeAttribute("disabled");}},formatHiddenDate:function(a){return Ext.isDate(a)?Ext.util.Format.date(a,this.submitFormat):a;},formatMultiHiddenDate:function(a){var g=this,d=[],c;for(var f=0,b=a.length;f<b;++f){d.push(g.formatHiddenDate(a[f]));}c=d.join(this.multiSelectionDelimiter);this.hiddenField.dom.value=c;},updateHidden:function(a){if(Ext.isArray(a)){this.formatMultiHiddenDate(a);}else{var b=this.getValue();if(Ext.isArray(b)){this.formatMultiHiddenDate(b);}else{this.hiddenField.dom.value=this.formatHiddenDate(b);}}}});Ext.reg("datefieldplus",Ext.ux.form.DateFieldPlus);}Ext.ns("Ext.ux.form");Ext.ux.form.FieldAutoExpand=function(a){Ext.apply(this,a);this.addEvents("autoexpand","beforeautoexpand");Ext.ux.form.FieldAutoExpand.superclass.constructor.call(this);};Ext.extend(Ext.ux.form.FieldAutoExpand,Ext.util.Observable,{offsetFix:-10,labelOffsetFix:-5,sideMsgFix:-25,autoExpandMax:0,init:function(a){this.panel=a;this.form=this.panel.getForm();this.autoWidthFields=[];this.panel.on("afterlayout",this.init2,this,{single:true});this.panel.on("add",this.init2,this);this.panel.on("remove",this.init2,this);},init2:function(){this.autoWidthFields=[];this.form.items.each(function(a){if((a.width=="auto"||!a.width)&&!a.grow){this.autoWidthFields[this.autoWidthFields.length]=a;}},this);this.panel.on("afterlayout",this.fitWidths,this);},fitWidths:function(){Ext.each(this.autoWidthFields,function(b){if(!this.width1){this.width4=this.form.getEl().down(".x-form-item").getSize(true).width+this.offsetFix;this.width3=this.width4+this.sideMsgFix;this.width2=this.width4-this.panel.labelWidth+this.labelOffsetFix;this.width1=this.width2+this.sideMsgFix;}if(!b.hideLabel){if(b.msgTarget=="side"){var a=this.width1;}else{var a=this.width2;}}else{if(b.msgTarget=="side"){var a=this.width3;}else{var a=this.width4;}}if(this.autoExpandMax&&a>this.autoExpandMax){a=this.autoExpandMax;}if(b.autoExpandMax&&a>b.autoExpandMax){a=b.autoExpandMax;}if(true!==this.eventsSuspended&&false===this.fireEvent("beforeautoexpand",b,a,this)){return;}else{b.setWidth(a);this.fireEvent("autoexpand",b,a,this);}},this);this.width1=0;}});Ext.reg("fieldautoexpand",Ext.ux.form.FieldAutoExpand);Ext.namespace("GO.form");GO.form.ColorField=Ext.extend(function(a){this.menu=new Ext.menu.ColorMenu();this.menu.palette.on("select",this.handleSelect,this);this.menu.on(Ext.apply({},this.menuListeners,{scope:this}));if(a.colors){this.menu.palette.colors=a.colors;}GO.form.ColorField.superclass.constructor.call(this,a);},Ext.form.TriggerField,{showHexValue:false,defaultAutoCreate:{tag:"input",type:"text",size:"1",autocomplete:"off",maxlength:"6"},lengthText:"Color hex values must be either 3 or 6 characters.",blankText:"Must have a hexidecimal value in the format ABCDEF.",defaultColor:"FFFFFF",maskRe:/[a-f0-9]/i,regex:/[a-f0-9]/i,curColor:"ffffff",validateValue:function(a){if(!this.showHexValue){return true;}if(a.length<1){this.el.setStyle({"background-color":"#"+this.defaultColor});if(!this.allowBlank){this.markInvalid(String.format(this.blankText,a));return false;}return true;}if(a.length!=3&&a.length!=6){this.markInvalid(String.format(this.lengthText,a));return false;}this.setColor(a);return true;},validateBlur:function(){return !this.menu||!this.menu.isVisible();},markInvalid:function(a){GO.form.ColorField.superclass.markInvalid.call(this,a);this.el.setStyle({"background-image":"url(../lib/resources/images/default/grid/invalid_line.gif)"});},setValue:function(a){GO.form.ColorField.superclass.setValue.call(this,a);this.setColor(a);},setColor:function(a){this.curColor=a;this.el.setStyle({"background-color":"#"+a,"background-image":"none"});if(!this.showHexValue){this.el.setStyle({"text-indent":"-100px"});if(Ext.isIE){this.el.setStyle({"margin-left":"100px"});}}},menuListeners:{select:function(a,b){this.setValue(b);},show:function(){this.onFocus();},hide:function(){this.focus();var a=this.menuListeners;this.menu.un("select",a.select,this);this.menu.un("show",a.show,this);this.menu.un("hide",a.hide,this);}},handleSelect:function(b,a){this.setValue(a);},onTriggerClick:function(){if(this.disabled){return;}this.menu.show(this.el,"tl-bl?");}});Ext.reg("colorfield",GO.form.ColorField);Ext.ns("Ext.ux.form");Ext.ux.form.DateTime=Ext.extend(Ext.form.Field,{defaultAutoCreate:{tag:"input",type:"hidden"},timeWidth:100,dtSeparator:" ",hiddenFormat:"Y-m-d H:i:s",otherToNow:true,timePosition:"right",dateFormat:"m/d/y",timeFormat:"g:i A",editable:true,initComponent:function(){Ext.ux.form.DateTime.superclass.initComponent.call(this);var b=Ext.apply({},{id:this.id+"-date",format:this.dateFormat||Ext.form.DateField.prototype.format,editable:this.editable,width:this.timeWidth,selectOnFocus:this.selectOnFocus,listeners:{blur:{scope:this,fn:this.onBlur},focus:{scope:this,fn:this.onFocus},valid:this.onValid}},this.dateConfig);this.df=new Ext.form.DateField(b);this.df.ownerCt=this;delete (this.dateFormat);var a=Ext.apply({},{id:this.id+"-time",format:this.timeFormat||Ext.form.TimeField.prototype.format,editable:this.editable,width:this.timeWidth,selectOnFocus:this.selectOnFocus,listeners:{blur:{scope:this,fn:this.onBlur},focus:{scope:this,fn:this.onFocus},valid:this.onValid}},this.timeConfig);this.tf=new Ext.form.TimeField(a);this.tf.ownerCt=this;delete (this.timeFormat);this.relayEvents(this.df,["focus","specialkey","invalid","valid"]);this.relayEvents(this.tf,["focus","specialkey","invalid","valid"]);},onRender:function(c,a){if(this.isRendered){return;}Ext.ux.form.DateTime.superclass.onRender.call(this,c,a);var b;if("below"===this.timePosition||"bellow"===this.timePosition){b=Ext.DomHelper.append(c,{tag:"table",style:"border-collapse:collapse",children:[{tag:"tr",children:[{tag:"td",style:"padding-bottom:1px",cls:"ux-datetime-date"}]},{tag:"tr",children:[{tag:"td",cls:"ux-datetime-time"}]}]},true);}else{b=Ext.DomHelper.append(c,{tag:"table",style:"border-collapse:collapse",children:[{tag:"tr",children:[{tag:"td",style:"padding-right:4px",cls:"ux-datetime-date"},{tag:"td",cls:"ux-datetime-time"}]}]},true);}this.tableEl=b;this.wrap=b.wrap();this.wrap.on("mousedown",this.onMouseDown,this,{delay:10});this.df.render(b.child("td.ux-datetime-date"));this.tf.render(b.child("td.ux-datetime-time"));if(Ext.isIE&&Ext.isStrict){b.select("input").applyStyles({top:0});}this.on("specialkey",this.onSpecialKey,this);this.df.el.swallowEvent(["keydown","keypress"]);this.tf.el.swallowEvent(["keydown","keypress"]);if("side"===this.msgTarget){var d=this.el.findParent(".x-form-element",10,true);this.errorIcon=d.createChild({cls:"x-form-invalid-icon"});this.df.errorIcon=this.errorIcon;this.tf.errorIcon=this.errorIcon;}this.el.dom.name=this.hiddenName||this.name||this.id;this.df.el.dom.removeAttribute("name");this.tf.el.dom.removeAttribute("name");this.isRendered=true;this.updateHidden();},adjustSize:Ext.BoxComponent.prototype.adjustSize,alignErrorIcon:function(){this.errorIcon.alignTo(this.tableEl,"tl-tr",[2,0]);},initDateValue:function(){this.dateValue=this.otherToNow?new Date():new Date(1970,0,1,0,0,0);},clearInvalid:function(){this.df.clearInvalid();this.tf.clearInvalid();},beforeDestroy:function(){if(this.isRendered){this.wrap.removeAllListeners();this.wrap.remove();this.tableEl.remove();this.df.destroy();this.tf.destroy();}},disable:function(){if(this.isRendered){this.df.disabled=this.disabled;this.df.onDisable();this.tf.onDisable();}this.disabled=true;this.df.disabled=true;this.tf.disabled=true;this.fireEvent("disable",this);return this;},enable:function(){if(this.rendered){this.df.onEnable();this.tf.onEnable();}this.disabled=false;this.df.disabled=false;this.tf.disabled=false;this.fireEvent("enable",this);return this;},focus:function(){this.df.focus();},getPositionEl:function(){return this.wrap;},getResizeEl:function(){return this.wrap;},getValue:function(){return this.dateValue?new Date(this.dateValue):"";},isValid:function(){return this.df.isValid()&&this.tf.isValid();},isVisible:function(){return this.df.rendered&&this.df.getActionEl().isVisible();},onBlur:function(a){if(this.wrapClick){a.focus();this.wrapClick=false;}if(a===this.df){this.updateDate();}else{this.updateTime();}this.updateHidden();(function(){if(!this.df.hasFocus&&!this.tf.hasFocus){var b=this.getValue();if(String(b)!==String(this.startValue)){this.fireEvent("change",this,b,this.startValue);}this.hasFocus=false;this.fireEvent("blur",this);}}).defer(100,this);},onFocus:function(){if(!this.hasFocus){this.hasFocus=true;this.startValue=this.getValue();this.fireEvent("focus",this);}},onMouseDown:function(a){if(!this.disabled){this.wrapClick="td"===a.target.nodeName.toLowerCase();}},onSpecialKey:function(b,c){var a=c.getKey();if(a===c.TAB){if(b===this.df&&!c.shiftKey){c.stopEvent();this.tf.focus();}if(b===this.tf&&c.shiftKey){c.stopEvent();this.df.focus();}}if(a===c.ENTER){this.updateValue();}},setDate:function(a){this.df.setValue(a);},setTime:function(a){this.tf.setValue(a);},setSize:function(a,b){if(!a){return;}if("below"===this.timePosition){this.df.setSize(a,b);this.tf.setSize(a,b);if(Ext.isIE){this.df.el.up("td").setWidth(a);this.tf.el.up("td").setWidth(a);}}else{this.df.setSize(a-this.timeWidth-4,b);this.tf.setSize(this.timeWidth,b);if(Ext.isIE){this.df.el.up("td").setWidth(a-this.timeWidth-4);this.tf.el.up("td").setWidth(this.timeWidth);}}},setValue:function(c){if(!c&&true===this.emptyToNow){this.setValue(new Date());return;}else{if(!c){this.setDate("");this.setTime("");this.updateValue();return;}}if("number"===typeof c){c=new Date(c);}else{if("string"===typeof c&&this.hiddenFormat){c=Date.parseDate(c,this.hiddenFormat);}}c=c?c:new Date(1970,0,1,0,0,0);var a,b;if(c instanceof Date){this.setDate(c);this.setTime(c);this.dateValue=new Date(c);}else{a=c.split(this.dtSeparator);this.setDate(a[0]);if(a[1]){if(a[2]){a[1]+=a[2];}this.setTime(a[1]);}}this.updateValue();},setVisible:function(a){if(a){this.df.show();this.tf.show();}else{this.df.hide();this.tf.hide();}return this;},show:function(){return this.setVisible(true);},hide:function(){return this.setVisible(false);},updateDate:function(){var a=this.df.getValue();if(a){if(!(this.dateValue instanceof Date)){this.initDateValue();if(!this.tf.getValue()){this.setTime(this.dateValue);}}this.dateValue.setMonth(0);this.dateValue.setFullYear(a.getFullYear());this.dateValue.setMonth(a.getMonth(),a.getDate());}else{this.dateValue="";this.setTime("");}},updateTime:function(){var a=this.tf.getValue();if(a&&!(a instanceof Date)){a=Date.parseDate(a,this.tf.format);}if(a&&!this.df.getValue()){this.initDateValue();this.setDate(this.dateValue);}if(this.dateValue instanceof Date){if(a){this.dateValue.setHours(a.getHours());this.dateValue.setMinutes(a.getMinutes());this.dateValue.setSeconds(a.getSeconds());}else{this.dateValue.setHours(0);this.dateValue.setMinutes(0);this.dateValue.setSeconds(0);}}},updateHidden:function(){if(this.isRendered){var a=this.dateValue instanceof Date?this.dateValue.format(this.hiddenFormat):"";this.el.dom.value=a;}},updateValue:function(){this.updateDate();this.updateTime();this.updateHidden();return;},validate:function(){return this.df.validate()&&this.tf.validate();},renderer:function(c){var b=c.editor.dateFormat||Ext.ux.form.DateTime.prototype.dateFormat;b+=" "+(c.editor.timeFormat||Ext.ux.form.DateTime.prototype.timeFormat);var a=function(e){var d=Ext.util.Format.date(e,b);return d;};return a;},onValid:function(a){}});Ext.reg("xdatetime",Ext.ux.form.DateTime);Ext.ux.SelectBox=function(a){this.searchResetDelay=1000;a=a||{};a=Ext.apply(a||{},{editable:false,forceSelection:true,rowHeight:false,lastSearchTerm:false,triggerAction:"all",mode:"local",lazyInit:false});Ext.ux.SelectBox.superclass.constructor.apply(this,arguments);this.lastSelectedIndex=this.selectedIndex||0;};Ext.extend(Ext.ux.SelectBox,Ext.form.ComboBox,{initEvents:function(){Ext.ux.SelectBox.superclass.initEvents.apply(this,arguments);this.el.on("keydown",this.keySearch,this,true);this.cshTask=new Ext.util.DelayedTask(this.clearSearchHistory,this);},keySearch:function(f,d,b){var a=f.getKey();var c=String.fromCharCode(a);var g=0;if(!this.store.getCount()){return;}switch(a){case Ext.EventObject.HOME:f.stopEvent();this.selectFirst();return;case Ext.EventObject.END:f.stopEvent();this.selectLast();return;case Ext.EventObject.PAGEDOWN:this.selectNextPage();f.stopEvent();return;case Ext.EventObject.PAGEUP:this.selectPrevPage();f.stopEvent();return;}if((f.hasModifier()&&!f.shiftKey)||f.isNavKeyPress()||f.isSpecialKey()){return;}if(this.lastSearchTerm==c){g=this.lastSelectedIndex;}this.search(this.displayField,c,g);this.cshTask.delay(this.searchResetDelay);},onRender:function(b,a){this.store.on("load",this.calcRowsPerPage,this);Ext.ux.SelectBox.superclass.onRender.apply(this,arguments);if(this.mode=="local"){this.calcRowsPerPage();}},onSelect:function(a,c,b){if(this.fireEvent("beforeselect",this,a,c)!==false){this.setValue(a.data[this.valueField||this.displayField]);if(!b){this.collapse();}this.lastSelectedIndex=c+1;this.fireEvent("select",this,a,c);}},render:function(a){Ext.ux.SelectBox.superclass.render.apply(this,arguments);if(Ext.isSafari){this.el.swallowEvent("mousedown",true);}this.el.unselectable();this.innerList.unselectable();this.trigger.unselectable();this.innerList.on("mouseup",function(d,c,b){if(c.id&&c.id==this.innerList.id){return;}this.onViewClick();},this);this.innerList.on("mouseover",function(d,c,b){if(c.id&&c.id==this.innerList.id){return;}this.lastSelectedIndex=this.view.getSelectedIndexes()[0]+1;this.cshTask.delay(this.searchResetDelay);},this);this.trigger.un("click",this.onTriggerClick,this);this.trigger.on("mousedown",function(d,c,b){d.preventDefault();this.onTriggerClick();},this);this.on("collapse",function(d,c,b){Ext.getDoc().un("mouseup",this.collapseIf,this);},this,true);this.on("expand",function(d,c,b){Ext.getDoc().on("mouseup",this.collapseIf,this);},this,true);},clearSearchHistory:function(){this.lastSelectedIndex=0;this.lastSearchTerm=false;},selectFirst:function(){this.focusAndSelect(this.store.data.first());},selectLast:function(){this.focusAndSelect(this.store.data.last());},selectPrevPage:function(){if(!this.rowHeight){return;}var a=Math.max(this.selectedIndex-this.rowsPerPage,0);this.focusAndSelect(this.store.getAt(a));},selectNextPage:function(){if(!this.rowHeight){return;}var a=Math.min(this.selectedIndex+this.rowsPerPage,this.store.getCount()-1);this.focusAndSelect(this.store.getAt(a));},search:function(c,b,d){c=c||this.displayField;this.lastSearchTerm=b;var a=this.store.find.apply(this.store,arguments);if(a!==-1){this.focusAndSelect(a);}},focusAndSelect:function(a){var b=typeof a==="number"?a:this.store.indexOf(a);this.select(b,this.isExpanded());this.onSelect(this.store.getAt(a),b,this.isExpanded());},calcRowsPerPage:function(){if(this.store.getCount()){this.rowHeight=Ext.fly(this.view.getNode(0)).getHeight();this.rowsPerPage=this.maxHeight/this.rowHeight;}else{this.rowHeight=false;}}});Ext.reg("selectbox",Ext.ux.SelectBox);Ext.ux.SliderTip=Ext.extend(Ext.Tip,{minWidth:10,offsets:[0,-10],init:function(a){a.on("dragstart",this.onSlide,this);a.on("drag",this.onSlide,this);a.on("dragend",this.hide,this);a.on("destroy",this.destroy,this);},onSlide:function(a){this.show();this.body.update(this.getText(a));this.doAutoWidth();this.el.alignTo(a.thumb,"b-t?",this.offsets);},getText:function(a){return a.getValue();}});Ext.ux.treeComboBox=Ext.extend(Ext.form.ComboBox,{tree:null,treeId:0,lastValue:null,initComponent:function(){this.treeId=Ext.id();this.focusLinkId=Ext.id();Ext.apply(this,{store:new Ext.data.SimpleStore({fields:[],data:[[]]}),editable:false,shadow:true,mode:"local",triggerAction:"all",maxHeight:300,tpl:'<tpl for="."><div style="height:200px"><div id="'+this.treeId+'"></div><a href="#" class="x-grid3-focus" id="'+this.focusLinkId+'" tabIndex="-1"/></div></tpl>',selectedClass:"",onSelect:Ext.emptyFn,valueField:"id"});var a={border:false};Ext.apply(a,this.treeConfig);if(!a.root){a.root=new Ext.tree.AsyncTreeNode({text:"treeRoot",id:"0"});}this.tree=new Ext.tree.TreePanel(a);this.on("expand",this.onExpand);this.on("blur",this.onBlur,this);this.tree.on("click",this.onClick,this);Ext.ux.treeComboBox.superclass.initComponent.call(this);},onTriggerClick:function(){if(this.disabled){return;}if(this.isExpanded()){this.collapse();}else{this.onFocus({});if(this.triggerAction=="all"){this.doQuery(this.allQuery,true);}else{this.doQuery(this.getRawValue());}}},onFocus:function(){Ext.ux.treeComboBox.superclass.onFocus.call(this);Ext.get(this.focusLinkId).focus();},onClick:function(a){if(a.attributes.displayName&&a.attributes.value){this.lastValue=a.attributes.value;this.valueNotFoundText=a.attributes.displayName;this.addClass(a.attributes.iconCls);this.setValue(a.attributes.value);this.collapse();}},onBlur:function(){if(this.lastValue!=null){this.setValue(this.lastValue);}},onExpand:function(){this.tree.render(this.treeId);this.tree.focus();},setImplicitValue:function(a){this.lastValue=a;this.setValue(a);}});Ext.reg("treecombobox",Ext.ux.treeComboBox);Ext.namespace("Ext.ux");Ext.ux.NotificationMgr={positions:[]};Ext.ux.Notification=Ext.extend(Ext.Window,{initComponent:function(){Ext.apply(this,{iconCls:this.iconCls||"x-icon-information",cls:"x-notification",width:200,plain:false,draggable:false,bodyStyle:"text-align:center;padding: 5px;"});if(this.autoDestroy){this.task=new Ext.util.DelayedTask(this.hide,this);}else{this.closable=true;}Ext.ux.Notification.superclass.initComponent.call(this);},setMessage:function(a){this.body.update(a);},setTitle:function(b,a){Ext.ux.Notification.superclass.setTitle.call(this,b,a||this.iconCls);},onRender:function(b,a){Ext.ux.Notification.superclass.onRender.call(this,b,a);},onDestroy:function(){Ext.ux.NotificationMgr.positions.remove(this.pos);Ext.ux.Notification.superclass.onDestroy.call(this);},cancelHiding:function(){this.addClass("fixed");if(this.autoDestroy){this.task.cancel();}},afterShow:function(){Ext.ux.Notification.superclass.afterShow.call(this);Ext.fly(this.body.dom).on("click",this.cancelHiding,this);if(this.autoDestroy){this.task.delay(this.hideDelay||5000);}},animShow:function(){this.pos=0;while(Ext.ux.NotificationMgr.positions.indexOf(this.pos)>-1){this.pos++;}Ext.ux.NotificationMgr.positions.push(this.pos);this.el.alignTo(document,"br-br",[-20,-20-((this.getSize().height+10)*this.pos)]);this.el.slideIn("b",{duration:1,callback:this.afterShow,scope:this});},animHide:function(){Ext.ux.NotificationMgr.positions.remove(this.pos);this.el.ghost("b",{duration:1,remove:true});},focus:Ext.emptyFn});Ext.ns("Ext.ux.grid");Ext.ux.grid.RowActions=function(a){Ext.apply(this,a);this.addEvents("beforeaction","action","beforegroupaction","groupaction");Ext.ux.grid.RowActions.superclass.constructor.call(this);};Ext.extend(Ext.ux.grid.RowActions,Ext.util.Observable,{actionEvent:"click",autoWidth:true,header:"",menuDisabled:true,sortable:false,tplGroup:'<tpl for="actions"><div class="ux-grow-action-item<tpl if="\'right\'===align"> ux-action-right</tpl> {cls}" style="{style}" qtip="{qtip}">{text}</div></tpl>',tplRow:'<div class="ux-row-action"><tpl for="actions"><div class="ux-row-action-item {cls} <tpl if="text">ux-row-action-text</tpl>" style="{hide}{style}" qtip="{qtip}"><tpl if="text"><span qtip="{qtip}">{text}</span></tpl></div></tpl></div>',widthIntercept:4,widthSlope:21,init:function(c){this.grid=c;if(!this.tpl){this.tpl=this.processActions(this.actions);}if(this.autoWidth){this.width=this.widthSlope*this.actions.length+this.widthIntercept;this.fixed=true;}var b=c.getView();var a={scope:this};a[this.actionEvent]=this.onClick;c.on({render:{scope:this,fn:function(){b.mainBody.on(a);}}});if(!this.renderer){this.renderer=function(k,d,e,l,g,f){d.css+=(d.css?" ":"")+"ux-row-action-cell";return this.tpl.apply(this.getData(k,d,e,l,g,f));}.createDelegate(this);}if(b.groupTextTpl&&this.groupActions){b.interceptMouse=b.interceptMouse.createInterceptor(function(d){if(d.getTarget(".ux-grow-action-item")){return false;}});b.groupTextTpl='<div class="ux-grow-action-text">'+b.groupTextTpl+"</div>"+this.processActions(this.groupActions,this.tplGroup).apply();}},getData:function(e,a,b,f,d,c){return b.data||{};},processActions:function(d,c){var a=[];Ext.each(d,function(e,f){if(e.iconCls&&"function"===typeof(e.callback||e.cb)){this.callbacks=this.callbacks||{};this.callbacks[e.iconCls]=e.callback||e.cb;}var g={cls:e.iconIndex?"{"+e.iconIndex+"}":(e.iconCls?e.iconCls:""),qtip:e.qtipIndex?"{"+e.qtipIndex+"}":(e.tooltip||e.qtip?e.tooltip||e.qtip:""),text:e.textIndex?"{"+e.textIndex+"}":(e.text?e.text:""),hide:e.hideIndex?'<tpl if="'+e.hideIndex+'">visibility:hidden;</tpl>':(e.hide?"visibility:hidden;":""),align:e.align||"right",style:e.style?e.style:""};a.push(g);},this);var b=new Ext.XTemplate(c||this.tplRow);return new Ext.XTemplate(b.apply({actions:a}));},onClick:function(g,k){var l=this.grid.getView();var c=false;var p=g.getTarget(".x-grid3-row");var a=l.findCellIndex(k.parentNode.parentNode);var o=g.getTarget(".ux-row-action-item");if(o){c=o.className.replace(/ux-row-action-item /,"");if(c){c=c.replace(/ ux-row-action-text/,"");c=c.trim();}}if(false!==p&&false!==a&&false!==c){var f=this.grid.store.getAt(p.rowIndex);if(this.callbacks&&"function"===typeof this.callbacks[c]){this.callbacks[c](this.grid,f,c,p.rowIndex,a);}if(true!==this.eventsSuspended&&false===this.fireEvent("beforeaction",this.grid,f,c,p.rowIndex,a)){return;}else{if(true!==this.eventsSuspended){this.fireEvent("action",this.grid,f,c,p.rowIndex,a);}}}o=g.getTarget(".ux-grow-action-item");if(o){var m=l.findGroup(k);var d=m?m.id.replace(/ext-gen[0-9]+-gp-/,""):null;var b;if(d){var n=new RegExp(d);b=this.grid.store.queryBy(function(e){return e._groupId.match(n);});b=b?b.items:[];}c=o.className.replace(/ux-grow-action-item (ux-action-right )*/,"");if("function"===typeof this.callbacks[c]){this.callbacks[c](this.grid,b,c,d);}if(true!==this.eventsSuspended&&false===this.fireEvent("beforegroupaction",this.grid,b,c,d)){return false;}this.fireEvent("groupaction",this.grid,b,c,d);}}});Ext.reg("rowactions",Ext.ux.grid.RowActions);Ext.ns("Ext.ux");Ext.ux.Image=Ext.extend(Ext.BoxComponent,{url:Ext.BLANK_IMAGE_URL,autoEl:{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"admin-user-image"},initComponent:function(){Ext.ux.Image.superclass.initComponent.call(this);this.addEvents("load");},onRender:function(){Ext.ux.Image.superclass.onRender.apply(this,arguments);this.el.on("load",this.onLoad,this);if(this.url){this.setSrc(this.url);}},onLoad:function(){this.fireEvent("load",this);},setSrc:function(a){this.el.dom.src=a;}});Ext.reg("image",Ext.ux.Image);Ext.UpdateManager.defaults.indicatorText='<div class="loading-indicator">En cours de chargement...</div>';if(Ext.DataView){Ext.DataView.prototype.emptyText="";}if(Ext.grid.GridPanel){Ext.grid.GridPanel.prototype.ddText="{0} ligne{1} sélectionnée{1}";}if(Ext.LoadMask){Ext.LoadMask.prototype.msg="En cours de chargement...";}Date.shortMonthNames=["Janv","Févr","Mars","Avr","Mai","Juin","Juil","Août","Sept","Oct","Nov","Déc"];Date.getShortMonthName=function(a){return Date.shortMonthNames[a];};Date.monthNames=["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"];Date.monthNumbers={Janvier:0,"Février":1,Mars:2,Avril:3,Mai:4,Juin:5,Juillet:6,"Août":7,Septembre:8,Octobre:9,Novembre:10,"Décembre":11};Date.getMonthNumber=function(a){return Date.monthNumbers[Ext.util.Format.capitalize(a)];};Date.dayNames=["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"];Date.getShortDayName=function(a){return Date.dayNames[a].substring(0,3);};Date.parseCodes.S.s="(?:er)";Ext.override(Date,{getSuffix:function(){return(this.getDate()==1)?"er":"";}});if(Ext.MessageBox){Ext.MessageBox.buttonText={ok:"OK",cancel:"Annuler",yes:"Oui",no:"Non"};}if(Ext.util.Format){Ext.util.Format.date=function(a,b){if(!a){return"";}if(!(a instanceof Date)){a=new Date(Date.parse(a));}return a.dateFormat(b||"d/m/Y");};}if(Ext.DatePicker){Ext.apply(Ext.DatePicker.prototype,{todayText:"Aujourd'hui",minText:"Cette date est antérieure à la date minimum",maxText:"Cette date est postérieure à la date maximum",disabledDaysText:"",disabledDatesText:"",monthNames:Date.monthNames,dayNames:Date.dayNames,nextText:"Mois suivant (CTRL+Flèche droite)",prevText:"Mois précédent (CTRL+Flèche gauche)",monthYearText:"Choisissez un mois (CTRL+Flèche haut ou bas pour changer d'année.)",todayTip:"{0} (Barre d'espace)",okText:"&#160;OK&#160;",cancelText:"Annuler",format:"d/m/y",startDay:1});}if(Ext.PagingToolbar){Ext.apply(Ext.PagingToolbar.prototype,{beforePageText:"Page",afterPageText:"sur {0}",firstText:"Première page",prevText:"Page précédente",nextText:"Page suivante",lastText:"Dernière page",refreshText:"Actualiser la page",displayMsg:"Page courante {0} - {1} sur {2}",emptyMsg:"Aucune donnée à afficher"});}if(Ext.form.Field){Ext.form.Field.prototype.invalidText="La valeur de ce champ est invalide";}if(Ext.form.TextField){Ext.apply(Ext.form.TextField.prototype,{minLengthText:"La longueur minimum de ce champ est de {0} caractères",maxLengthText:"La longueur maximum de ce champ est de {0} caractères",blankText:"Ce champ est obligatoire",regexText:"",emptyText:null});}if(Ext.form.NumberField){Ext.apply(Ext.form.NumberField.prototype,{decimalSeparator:",",decimalPrecision:2,minText:"La valeur minimum de ce champ doit être de {0}",maxText:"La valeur maximum de ce champ doit être de {0}",nanText:"{0} n'est pas un nombre valide"});}if(Ext.form.DateField){Ext.apply(Ext.form.DateField.prototype,{disabledDaysText:"Désactivé",disabledDatesText:"Désactivé",minText:"La date de ce champ ne peut être antérieure au {0}",maxText:"La date de ce champ ne peut être postérieure au {0}",invalidText:"{0} n'est pas une date valide - elle doit être au format suivant: {1}",format:"d/m/y",altFormats:"d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"});}if(Ext.form.ComboBox){Ext.apply(Ext.form.ComboBox.prototype,{loadingText:"En cours de chargement...",valueNotFoundText:undefined});}if(Ext.form.VTypes){Ext.apply(Ext.form.VTypes,{emailText:'Ce champ doit contenir une adresse email au format: "usager@domaine.com"',urlText:'Ce champ doit contenir une URL au format suivant: "http://www.domaine.com"',alphaText:"Ce champ ne peut contenir que des lettres et le caractère souligné (_)",alphanumText:"Ce champ ne peut contenir que des caractères alphanumériques ainsi que le caractère souligné (_)"});}if(Ext.form.HtmlEditor){Ext.apply(Ext.form.HtmlEditor.prototype,{createLinkText:"Veuillez entrer l'URL pour ce lien:",buttonTips:{bold:{title:"Gras (Ctrl+B)",text:"Met le texte sélectionné en gras.",cls:"x-html-editor-tip"},italic:{title:"Italique (Ctrl+I)",text:"Met le texte sélectionné en italique.",cls:"x-html-editor-tip"},underline:{title:"Souligné (Ctrl+U)",text:"Souligne le texte sélectionné.",cls:"x-html-editor-tip"},increasefontsize:{title:"Agrandir la police",text:"Augmente la taille de la police.",cls:"x-html-editor-tip"},decreasefontsize:{title:"Réduire la police",text:"Réduit la taille de la police.",cls:"x-html-editor-tip"},backcolor:{title:"Couleur de surbrillance",text:"Modifie la couleur de fond du texte sélectionné.",cls:"x-html-editor-tip"},forecolor:{title:"Couleur de police",text:"Modifie la couleur du texte sélectionné.",cls:"x-html-editor-tip"},justifyleft:{title:"Aligner à gauche",text:"Aligne le texte à gauche.",cls:"x-html-editor-tip"},justifycenter:{title:"Centrer",text:"Centre le texte.",cls:"x-html-editor-tip"},justifyright:{title:"Aligner à droite",text:"Aligner le texte à droite.",cls:"x-html-editor-tip"},insertunorderedlist:{title:"Liste à puce",text:"Démarre une liste à puce.",cls:"x-html-editor-tip"},insertorderedlist:{title:"Liste numérotée",text:"Démarre une liste numérotée.",cls:"x-html-editor-tip"},createlink:{title:"Lien hypertexte",text:"Transforme en lien hypertexte.",cls:"x-html-editor-tip"},sourceedit:{title:"Code source",text:"Basculer en mode édition du code source.",cls:"x-html-editor-tip"}}});}if(Ext.grid.GridView){Ext.apply(Ext.grid.GridView.prototype,{sortAscText:"Tri croissant",sortDescText:"Tri décroissant",columnsText:"Colonnes"});}if(Ext.grid.GroupingView){Ext.apply(Ext.grid.GroupingView.prototype,{emptyGroupText:"(Aucun)",groupByText:"Grouper par ce champ",showGroupsText:"Afficher par groupes"});}if(Ext.grid.PropertyColumnModel){Ext.apply(Ext.grid.PropertyColumnModel.prototype,{nameText:"Propriété",valueText:"Valeur",dateFormat:"d/m/Y"});}if(Ext.layout.BorderLayout&&Ext.layout.BorderLayout.SplitRegion){Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype,{splitTip:"Cliquer et glisser pour redimensionner le panneau.",collapsibleSplitTip:"Cliquer et glisser pour redimensionner le panneau. Double-cliquer pour le cacher."});}if(Ext.form.TimeField){Ext.apply(Ext.form.TimeField.prototype,{minText:"L'heure de ce champ ne peut être antérieure à {0}",maxText:"L'heure de ce champ ne peut être postérieure à {0}",invalidText:"{0} n'est pas une heure valide",format:"H:i",altFormats:"g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|h a|g a|g A|gi|hi|Hi|gia|hia|g|H"});}if(Ext.form.CheckboxGroup){Ext.apply(Ext.form.CheckboxGroup.prototype,{blankText:"Vous devez sélectionner au moins un élément dans ce groupe"});}if(Ext.form.RadioGroup){Ext.apply(Ext.form.RadioGroup.prototype,{blankText:"Vous devez sélectionner au moins un élément dans ce groupe"});}if(Ext.ux.DatePickerPlus){Ext.apply(Ext.ux.DatePickerPlus.prototype,{weekName:" Se.",selectWeekText:"Cliquez ici pour sélectionner tous les jours de la semaine",selectMonthText:"Cliquez ici pour sélectionner tous les jours du mois",maxSelectionDaysTitle:"Sélection de la date",maxSelectionDaysText:"Vous ne pouvez sélectionner que %0 jour(s) au maximum",undoText:"Annuler",displayMaskText:"Veuillez patienter...",nextYearText:"Année suivante (Control+Haut)",prevYearText:"Année Précedente (Control+Bas)",nationalHolidays:function(b){b=(typeof b==="undefined"?(this.lastRenderedYear?this.lastRenderedYear:new Date().getFullYear()):parseInt(b,10));var a=[{text:"Jour de l'An",date:new Date(b,0,1)},{text:"Fête du travail",date:new Date(b,4,1)},{text:"Fin de la Seconde Guerre mondiale en Europe (1945)",date:new Date(b,4,8)},{text:"Fête nationale",date:new Date(b,6,14)},{text:"Assomption",date:new Date(b,7,15)},{text:"Toussaint",date:new Date(b,10,1)},{text:"Armistice de 1918",date:new Date(b,10,11)},{text:"Noël",date:new Date(b,11,25)},{text:"Lundi de Pâques",date:Ext.util.EasterDate(b,1)},{text:"Ascension",date:Ext.util.EasterDate(b,39)},{text:"Lundi de Pentecôte",date:Ext.util.EasterDate(b,50)}];return a;}});}Ext.namespace("Ext.ux");Ext.ux.GMapPanel=Ext.extend(Ext.Panel,{initComponent:function(){var a={plain:true,zoomLevel:0,yaw:180,pitch:0,gmapType:"map",border:false,displayGeoErrors:false,minGeoAccuracy:7,mapDefined:false,mapDefinedGMap:false};Ext.applyIf(this,a);Ext.ux.GMapPanel.superclass.initComponent.call(this);},afterRender:function(){var b=this.ownerCt.getSize();Ext.applyIf(this,b);Ext.ux.GMapPanel.superclass.afterRender.call(this);if(this.gmapType==="map"){this.gmap=new GMap2(this.body.dom);this.mapDefined=true;this.mapDefinedGMap=true;}if(this.gmapType==="panorama"){this.gmap=new GStreetviewPanorama(this.body.dom);this.mapDefined=true;}if(!this.mapDefined&&this.gmapType){this.gmap=new GMap2(this.body.dom);this.gmap.setMapType(this.gmapType);this.mapDefined=true;this.mapDefinedGMap=true;}if(typeof this.addControl=="object"&&this.mapDefinedGMap){this.getMap().addControl(this.addControl);}this.addMapControls();this.addOptions();if(typeof this.setCenter==="object"){if(typeof this.setCenter.geoCodeAddr==="string"){this.geoCodeLookup(this.setCenter.geoCodeAddr,this.setCenter.marker,false,true,this.setCenter.listeners);}else{if(this.gmapType==="map"){var a=this.fixLatLng(new GLatLng(this.setCenter.lat,this.setCenter.lng));this.getMap().setCenter(a,this.zoomLevel);}if(typeof this.setCenter.marker==="object"&&typeof a==="object"){this.addMarker(a,this.setCenter.marker,this.setCenter.marker.clear);}}if(this.gmapType==="panorama"){this.getMap().setLocationAndPOV(new GLatLng(this.setCenter.lat,this.setCenter.lng),{yaw:this.yaw,pitch:this.pitch,zoom:this.zoomLevel});}}GEvent.bind(this.gmap,"load",this,function(){this.onMapReady();});},onMapReady:function(){this.addMarkers(this.markers);this.addKMLOverlay(this.autoLoadKML);},onResize:function(a,b){if(typeof this.getMap()=="object"){this.getMap().checkResize();}Ext.ux.GMapPanel.superclass.onResize.call(this,a,b);},setSize:function(c,a,b){if(typeof this.getMap()=="object"){this.getMap().checkResize();}Ext.ux.GMapPanel.superclass.setSize.call(this,c,a,b);},getMap:function(){return this.gmap;},getCenter:function(){return this.fixLatLng(this.getMap().getCenter());},getCenterLatLng:function(){var a=this.getCenter();return{lat:a.lat(),lng:a.lng()};},addMarkers:function(c){if(Ext.isArray(c)){for(var b=0;b<c.length;b++){if(typeof c[b].geoCodeAddr=="string"){this.geoCodeLookup(c[b].geoCodeAddr,c[b].marker,false,c[b].setCenter,c[b].listeners);}else{var a=this.fixLatLng(new GLatLng(c[b].lat,c[b].lng));this.addMarker(a,c[b].marker,false,c[b].setCenter,c[b].listeners);}}}},addMarker:function(c,d,b,a,e){Ext.applyIf(d,G_DEFAULT_ICON);if(b===true){this.getMap().clearOverlays();}if(a===true){this.getMap().setCenter(c,this.zoomLevel);}var f=new GMarker(c,d);if(typeof e==="object"){for(evt in e){GEvent.bind(f,evt,this,e[evt]);}}this.getMap().addOverlay(f);},addMapControls:function(){if(this.gmapType==="map"){if(Ext.isArray(this.mapControls)){for(i=0;i<this.mapControls.length;i++){this.addMapControl(this.mapControls[i]);}}else{if(typeof this.mapControls==="string"){this.addMapControl(this.mapControls);}else{if(typeof this.mapControls==="object"){this.getMap().addControl(this.mapControls);}}}}},addMapControl:function(b){var a=window[b];if(typeof a==="function"){this.getMap().addControl(new a());}},addOptions:function(){if(Ext.isArray(this.mapConfOpts)){var a;for(i=0;i<this.mapConfOpts.length;i++){this.addOption(this.mapConfOpts[i]);}}else{if(typeof this.mapConfOpts==="string"){this.addOption(this.mapConfOpts);}}},addOption:function(b){var a=this.getMap()[b];if(typeof a==="function"){this.getMap()[b]();}},addKMLOverlay:function(a){if(typeof a==="string"&&a!==""){var b=new GGeoXml(a);this.getMap().addOverlay(b);}},geoCodeLookup:function(e,c,b,a,d){if(!this.geocoder){this.geocoder=new GClientGeocoder();}this.geocoder.getLocations(e,this.addAddressToMap.createDelegate(this,[e,c,b,a,d],true));},addAddressToMap:function(d,f,c,b,a,e){if(!d||d.Status.code!=200){Ext.MessageBox.alert("Error","Code "+d.Status.code+" Error Returned");}else{place=d.Placemark[0];addressinfo=place.AddressDetails;accuracy=addressinfo.Accuracy;if(accuracy===0){this.geoErrorMsg("Unable to Locate Address","Unable to Locate the Address you provided");}else{if(accuracy<this.minGeoAccuracy){this.geoErrorMsg("Address Accuracy","The address provided has a low accuracy.<br><br>Level "+accuracy+" Accuracy (8 = Exact Match, 1 = Vague Match)");}else{point=this.fixLatLng(new GLatLng(place.Point.coordinates[1],place.Point.coordinates[0]));if(a){this.getMap().setCenter(point,this.zoomLevel);}if(typeof c==="object"){if(!c.title){c.title=place.address;}Ext.applyIf(c,G_DEFAULT_ICON);this.addMarker(point,c,b,false,e);}}}}},geoErrorMsg:function(b,a){if(this.displayGeoErrors){Ext.MessageBox.alert(b,a);}},fixLatLng:function(a){if(this.getMap().getCurrentMapType().QO=="visible"){a.lat(180-a.lat());a.lng(180-a.lng());}return a;}});Ext.reg("gmappanel",Ext.ux.GMapPanel);var IACV_SERVER_URL="/server/json/";var IACV_CLIENT_URL="/";var IACV_CHARTS_URL="/charts/";var DEFAULT_BAD_INSTANCE_URL="http://www.innoagenda.fr";var AUTO_DEMO_LOGIN=true;var ADMIN_JS="innoAgenda.Admin";var CHARTS_JS="innoAgenda.Charts";var ABSENCE_JS="innoAgenda.Absence";var SLOT_SEARCH_JS="innoAgenda.SlotSearch";var LOG_LEVEL=0;var DEFAULT_RESOURCE_SLOTS=[{begin:"08:00",end:"12:00"},{begin:"14:00",end:"19:00"}];Ext.ns("innoAgenda");Ext.ns("innoAgenda.Windows.eventPropertiesPanel");Ext.ns("admin");admin.window=false;Ext.ns("common");Ext.ns("innoAgenda.Instance");Ext.ns("innoAgenda.Windows");Ext.ns("innoAgenda.Lists");Ext.ns("innoAgenda.Contact");Ext.ns("innoAgenda.EventCharge");Ext.ns("innoAgenda.Charges");Ext.ns("innoAgenda.Windows.Charges");Ext.ns("innoAgenda.Calendar");Ext.ns("innoAgenda.Absence");Ext.ns("innoAgenda.Absence.NewAbsence");Ext.ns("innoAgenda.Absence.Synthesis");Ext.ns("innoAgenda.Absence.Historical");Ext.ns("innoAgenda.Absence.InProgress");Ext.ns("innoAgenda.Absence.ToValidate");Ext.ns("innoAgenda.Absence.Recap");Ext.ns("innoAgenda.resourcesSelection");Ext.ns("innoAgenda.Windows.Message");Ext.ns("innoAgenda.SlotSearchWho");Ext.ns("innoAgenda.SlotSearchWhen");Ext.ns("innoAgenda.SlotSearchWhat");Ext.ns("innoAgenda.SlotSearchRecap");Ext.ns("innoAgenda.SlotSearchResult");Ext.ns("innoAgenda.SlotSearchEvent");Ext.ns("innoAgenda.Windows.EventAlert");Ext.ns("innoAgenda.Windows.eventPropertiesButton");Ext.ns("innoAgenda.Windows.reservationPropertiesButton");Ext.ns("innoAgenda.ChartsWho");Ext.ns("innoAgenda.ChartsWhen");Ext.ns("innoAgenda.ChartsWhat");Ext.ns("innoAgenda.ChartsType");Ext.ns("innoAgenda.ChartsResult");Ext.ns("innoAgenda.ChartsResult.result");Ext.ns("innoAgenda.Common");var repetitionMonthlyWeekDayNumberData=[["1","premier"],["2","deuxième"],["3","troisième"],["4","quatrième"],["5","cinquième"],["6","dernier"]];var repetitionMonthlyWeekDayData=[["1","Lundi"],["2","Mardi"],["3","Mercredi"],["4","Jeudi"],["5","Vendredi"],["6","Samedi"],["7","Dimanche"],["8","Jour du mois"]];var repetitionYearlyMonthData=[["1","Janvier"],["2","Février"],["3","Mars"],["4","Avril"],["5","Mai"],["6","Juin"],["7","Juillet"],["8","Août"],["9","Septembre"],["10","Octobre"],["11","Novembre"],["12","Décembre"]];common.dayStore=new Ext.data.SimpleStore({fields:["index","day"],data:[[1,"Lundi"],[2,"Mardi"],[3,"Mercredi"],[4,"Jeudi"],[5,"Vendredi"],[6,"Samedi"],[7,"Dimanche"]]});function debug(c,a){a=(a)?a:0;if(a<=LOG_LEVEL){try{console.log(c);}catch(b){console={log:function(){}};}}}function var_dump(b){try{console.dir(b);}catch(a){console={dir:function(){}};}}function afterConnectionError(){Ext.getCmp("loginPasswordTextfield").setValue("");Ext.getCmp("loginPasswordTextfield").focus();if(Ext.get("banner")){Ext.get("banner").show();}}function disconnect(a){Ext.Ajax.request({url:IACV_SERVER_URL+"logout.php",method:"POST",success:function(b){viewport.remove();window.location=IACV_CLIENT_URL;}});}function connect(){if(Ext.get("banner")){Ext.get("banner").hide();}Ext.getCmp("loginFormPanel").getForm().submit({method:"POST",waitTitle:"Connexion au serveur",waitMsg:"Envoi des informations...",params:{instance:innoAgenda.Instance.id},success:function(a,b){var c=Ext.util.JSON.decode(b.response.responseText);innoAgenda.User=c.user;innoAgenda.Group=c.group;innoAgenda.Prefs=c.prefs;innoAgenda.Permissions=c.permissions;innoAgenda.Messages=c.messages;innoAgenda.Windows.login.hide();if(innoAgenda.Windows.badBrowser.getEl()){innoAgenda.Windows.badBrowser.hide();}if(innoAgenda.Windows.badScreenSize.getEl()){innoAgenda.Windows.badScreenSize.hide();}initViewPort();Ext.TaskMgr.start(keepAliveTask);},failure:function(a,b){if(b.failureType=="server"){var c=Ext.util.JSON.decode(b.response.responseText);if(c.errors.reason==2||c.errors.reason==3){Ext.Msg.alert("Erreur","Le nom d'utilisateur ou le mot de passe sont invalides",afterConnectionError);}else{Ext.Msg.alert("Erreur","Une erreur est survenue lors de<br/>la tentative de connexion avec serveur.",afterConnectionError);}}else{Ext.Msg.alert("Erreur","Impossible de joindre le serveur",afterConnectionError);}}});}function launchAdmin(){if(innoAgenda.Instance.id=="public"){innoAgenda.Windows.AdminPublicWindow.show();}else{}}Ext.override(Ext.data.Store,{sortByFields:function(a){var b=[];for(var c=0;c<a.length;c++){if(typeof a[c]=="string"){a[c]={field:a[c],direction:"ASC"};}b.push(this.fields.get(a[c].field).sortType);}var d=function(g,f){var e;for(var k=0;!e&&k<a.length;k++){var m=b[k](g.data[a[k].field]);var l=b[k](f.data[a[k].field]);e=(m>l)?1:((m<l)?-1:0);if(a[k].direction=="DESC"){e=-e;}}return e;};this.data.sort("ASC",d);if(this.snapshot&&this.snapshot!=this.data){this.snapshot.sort("ASC",d);}this.fireEvent("datachanged",this);}});Ext.form.Checkbox.override({setValue:function(a){var b=this.checked;this.checked=(a===true||a==="true"||a=="1"||String(a).toLowerCase()=="on");if(this.rendered){this.el.dom.checked=this.checked;this.el.dom.defaultChecked=this.checked;this.wrap[this.checked?"addClass":"removeClass"](this.checkedCls);}if(b!=this.checked){this.fireEvent("check",this,this.checked);if(this.handler){this.handler.call(this.scope||this,this,this.checked);}}},afterRender:function(){Ext.form.Checkbox.superclass.afterRender.call(this);this.wrap[this.checked?"addClass":"removeClass"](this.checkedCls);}});function isInt(a){var b=parseInt(a);if(isNaN(b)){return false;}return a==b&&a.toString()==b.toString();}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);Ext.fly(b.innerHd).on("mousedown",this.onHdMouseDown,this);},this);},onMouseDown:function(d,c){if(c.className&&c.className.indexOf("x-grid3-cc-"+this.id)!=-1){d.stopEvent();var b=this.grid.getView().findRowIndex(c);var a=this.grid.store.getAt(b);if(a.get("isSelectable")){a.set(this.dataIndex,!a.data[this.dataIndex]);}if(this.handler){this.handler(a.get(this.dataIndex));}}},onHdMouseDown:function(c,a){if(c.button==0&&a.className=="x-grid3-hd-checker"){c.stopEvent();var b=Ext.fly(a.parentNode);var d=b.hasClass("x-grid3-hd-checker-on");if(d){b.removeClass("x-grid3-hd-checker-on");if(this.handlerHeaderUnchecked){this.handlerHeaderUnchecked();}}else{b.addClass("x-grid3-hd-checker-on");if(this.handlerHeaderChecked){this.handlerHeaderChecked();}}}},renderer:function(b,c,a){if(a.get("isSelectable")){c.css+=" x-grid3-check-col-td";return'<div class="x-grid3-check-col'+(b?"-on":"")+" x-grid3-cc-"+this.id+'">&#160;</div>';}return"";}};if(Ext.util.Format){Ext.util.Format.fileSize=function(a){if(a<1024){return a+" octets";}else{if(a<1048576){return(Math.round(((a*10)/1024))/10)+" Ko";}else{return(Math.round(((a*10)/1048576))/10)+" Mo";}}};}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.apply(Ext.form.VTypes,{password:function(c,b){if(b.initialPassField){var a=Ext.getCmp(b.initialPassField);return(c==a.getValue());}return true;},passwordText:"Les mots de passe saisis ne correspondent pas."});function StringBuffer(){this.buffer=[];}StringBuffer.prototype.append=function append(a){this.buffer.push(a);return this;};StringBuffer.prototype.toString=function toString(){return this.buffer.join("");};var directions=false;function downloadFile(b,a){var k=Ext.id();var f=document.createElement("iframe");f.id=k;f.name=k;f.className="x-hidden";if(Ext.isIE){f.src=Ext.SSL_SECURE_URL;}document.body.appendChild(f);if(Ext.isIE){document.frames[k].name=k;}var c=Ext.DomHelper.append(document.body,{tag:"form",method:"post",action:b,target:k});document.body.appendChild(c);var d;while(a.length>0){var e=a.pop();d=document.createElement("input");d.type="hidden";d.name=e.name;d.value=e.value;c.appendChild(d);}var g=function(){Ext.EventManager.removeListener(f,"load",g,this);setTimeout(function(){document.body.removeChild(c);},100);setTimeout(function(){document.body.removeChild(f);},110);};Ext.EventManager.on(f,"load",g,this);c.submit();}Ext.override(Ext.form.FileUploadField,{onRender:function(c,a){Ext.form.FileUploadField.superclass.onRender.call(this,c,a);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.createFileInput();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.addFileListener();},createFileInput:function(){this.fileInput=this.wrap.createChild({id:this.getFileInputId(),name:this.name||this.getId(),cls:"x-form-file",tag:"input",type:"file",size:1});},addFileListener:function(){this.fileInput.on({change:function(){var a=this.fileInput.dom.value;this.setValue(a);this.fireEvent("fileselected",this,a);},mouseover:function(){this.button.addClass(["x-btn-over","x-btn-focus"]);},mouseout:function(){this.button.removeClass(["x-btn-over","x-btn-focus","x-btn-click"]);},mousedown:function(){this.button.addClass("x-btn-click");},mouseup:function(){this.button.removeClass(["x-btn-over","x-btn-focus","x-btn-click"]);},scope:this});},reset:function(){this.fileInput.removeAllListeners();this.fileInput.remove();this.createFileInput();this.addFileListener();Ext.form.FileUploadField.superclass.reset.call(this);}});function str_repeat(b,a){for(var c=[];a>0;c[--a]=b){}return(c.join(""));}function sprintf(){var g=0,e,k=arguments[g++],n=[],d,l,q,b;while(k){if(d=/^[^\x25]+/.exec(k)){n.push(d[0]);}else{if(d=/^\x25{2}/.exec(k)){n.push("%");}else{if(d=/^\x25(?:(\d+)\$)?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(k)){if(((e=arguments[d[1]||g++])==null)||(e==undefined)){throw ("Too few arguments.");}if(/[^s]/.test(d[7])&&(typeof(e)!="number")){throw ("Expecting number but found "+typeof(e));}switch(d[7]){case"b":e=e.toString(2);break;case"c":e=String.fromCharCode(e);break;case"d":e=parseInt(e);break;case"e":e=d[6]?e.toExponential(d[6]):e.toExponential();break;case"f":e=d[6]?parseFloat(e).toFixed(d[6]):parseFloat(e);break;case"o":e=e.toString(8);break;case"s":e=((e=String(e))&&d[6]?e.substring(0,d[6]):e);break;case"u":e=Math.abs(e);break;case"x":e=e.toString(16);break;case"X":e=e.toString(16).toUpperCase();break;}e=(/[def]/.test(d[7])&&d[2]&&e>0?"+"+e:e);q=d[3]?d[3]=="0"?"0":d[3].charAt(1):" ";b=d[5]-String(e).length;l=d[5]?str_repeat(q,b):"";n.push(d[4]?e+l:l+e);}else{throw ("Huh ?!");}}}k=k.substring(d[0].length);}return n.join("");}function roundDec(a){return a.toFixed(2);}Ext.override(Ext.grid.GridView,{initTemplates:function(){var c=this.templates||{};if(!c.master){c.master=new Ext.Template('<div class="x-grid3" hidefocus="true">','<div class="x-grid3-viewport">','<div class="x-grid3-header"><div class="x-grid3-header-inner"><div class="x-grid3-header-offset" style="{ostyle}">{header}</div></div><div class="x-clear"></div></div>','<div class="x-grid3-scroller"><div class="x-grid3-body" style="{bstyle}">{body}</div><a href="#" class="x-grid3-focus" tabIndex="-1"></a></div>',"</div>",'<div class="x-grid3-resize-marker">&nbsp;</div>','<div class="x-grid3-resize-proxy">&nbsp;</div>',"</div>");}if(!c.header){c.header=new Ext.Template('<table border="0" cellspacing="0" cellpadding="0" style="{tstyle}">','<thead><tr class="x-grid3-hd-row">{cells}</tr></thead>',"</table>");}if(!c.hcell){c.hcell=new Ext.Template('<td class="x-grid3-hd x-grid3-cell x-grid3-td-{id} {css}" style="{style}"><div {tooltip} {attr} class="x-grid3-hd-inner x-grid3-hd-{id}" unselectable="on" style="{istyle}">',this.grid.enableHdMenu?'<a class="x-grid3-hd-btn" href="#"></a>':"",'{value}<img class="x-grid3-sort-icon" src="',Ext.BLANK_IMAGE_URL,'" />',"</div></td>");}if(!c.body){c.body=new Ext.Template("{rows}");}if(!c.row){c.row=new Ext.Template('<div class="x-grid3-row {alt}" style="{tstyle}"><table class="x-grid3-row-table" border="0" cellspacing="0" cellpadding="0" style="{tstyle}">',"<tbody><tr>{cells}</tr>",(this.enableRowBody?'<tr class="x-grid3-row-body-tr" style="{bodyStyle}"><td colspan="{cols}" class="x-grid3-body-cell" tabIndex="0" hidefocus="on"><div class="x-grid3-row-body">{body}</div></td></tr>':""),"</tbody></table></div>");}if(!c.cell){c.cell=new Ext.Template('<td class="x-grid3-col x-grid3-cell x-grid3-td-{id} {css}" style="{style}" tabIndex="0" {cellAttr}>','<div class="x-grid3-cell-inner x-grid3-col-{id}" unselectable="on" {attr}>{value}</div>',"</td>");}for(var a in c){var b=c[a];if(b&&typeof b.compile=="function"&&!b.compiled){b.disableFormats=true;b.compile();}}this.templates=c;this.colRe=new RegExp("x-grid3-td-([^\\s]+)","");},updateAllColumnWidths:function(){var d=this.getTotalWidth();var l=this.cm.getColumnCount();var f=[];for(var b=0;b<l;b++){f[b]=this.getColumnWidth(b);}this.innerHd.firstChild.style.width=this.getOffsetWidth();this.innerHd.firstChild.firstChild.style.width=d;this.mainBody.dom.style.width=d;for(var b=0;b<l;b++){var c=this.getHeaderCell(b);c.style.width=f[b];}var g=this.getRows(),m,k;for(var b=0,e=g.length;b<e;b++){m=g[b];m.style.width=d;if(m.firstChild){m.firstChild.style.width=d;k=m.firstChild.rows[0];for(var a=0;a<l;a++){k.childNodes[a].style.width=f[a];}}}this.onAllColumnWidthsUpdated(f,d);},updateColumnWidth:function(b,a){var k=this.getColumnWidth(b);var e=this.getTotalWidth();this.innerHd.firstChild.style.width=this.getOffsetWidth();this.innerHd.firstChild.firstChild.style.width=e;this.mainBody.dom.style.width=e;var d=this.getHeaderCell(b);d.style.width=k;var g=this.getRows(),l;for(var c=0,f=g.length;c<f;c++){l=g[c];l.style.width=e;if(l.firstChild){l.firstChild.style.width=e;l.firstChild.rows[0].childNodes[b].style.width=k;}}this.onColumnWidthUpdated(b,k,e);},updateColumnHidden:function(a,e){var d=this.getTotalWidth();this.innerHd.firstChild.style.width=this.getOffsetWidth();this.innerHd.firstChild.firstChild.style.width=d;this.mainBody.dom.style.width=d;var g=e?"none":"";var c=this.getHeaderCell(a);c.style.display=g;var k=this.getRows(),l;for(var b=0,f=k.length;b<f;b++){l=k[b];l.style.width=d;if(l.firstChild){l.firstChild.style.width=d;l.firstChild.rows[0].childNodes[a].style.display=g;}}this.onColumnHiddenUpdated(a,e,d);delete this.lastViewWidth;this.layout();},afterRender:function(){this.mainBody.dom.innerHTML=this.renderRows()||"&nbsp;";this.processRows(0,true);if(this.deferEmptyText!==true){this.applyEmptyText();}},renderUI:function(){var d=this.renderHeaders();var a=this.templates.body.apply({rows:"&nbsp;"});var b=this.templates.master.apply({body:a,header:d,ostyle:"width:"+this.getOffsetWidth()+";",bstyle:"width:"+this.getTotalWidth()+";"});var c=this.grid;c.getGridEl().dom.innerHTML=b;this.initElements();Ext.fly(this.innerHd).on("click",this.handleHdDown,this);this.mainHd.on("mouseover",this.handleHdOver,this);this.mainHd.on("mouseout",this.handleHdOut,this);this.mainHd.on("mousemove",this.handleHdMove,this);this.scroller.on("scroll",this.syncScroll,this);if(c.enableColumnResize!==false){this.splitZone=new Ext.grid.GridView.SplitDragZone(c,this.mainHd.dom);}if(c.enableColumnMove){this.columnDrag=new Ext.grid.GridView.ColumnDragZone(c,this.innerHd);this.columnDrop=new Ext.grid.HeaderDropZone(c,this.mainHd.dom);}if(c.enableHdMenu!==false){if(c.enableColumnHide!==false){this.colMenu=new Ext.menu.Menu({id:c.id+"-hcols-menu"});this.colMenu.on("beforeshow",this.beforeColMenuShow,this);this.colMenu.on("itemclick",this.handleHdMenuClick,this);}this.hmenu=new Ext.menu.Menu({id:c.id+"-hctx"});this.hmenu.add({id:"asc",text:this.sortAscText,cls:"xg-hmenu-sort-asc"},{id:"desc",text:this.sortDescText,cls:"xg-hmenu-sort-desc"});if(c.enableColumnHide!==false){this.hmenu.add("-",{id:"columns",text:this.columnsText,menu:this.colMenu,iconCls:"x-cols-icon"});}this.hmenu.on("itemclick",this.handleHdMenuClick,this);}if(c.trackMouseOver){this.mainBody.on("mouseover",this.onRowOver,this);this.mainBody.on("mouseout",this.onRowOut,this);}if(c.enableDragDrop||c.enableDrag){this.dragZone=new Ext.grid.GridDragZone(c,{ddGroup:c.ddGroup||"GridDD"});}this.updateHeaderSortState();},onColumnWidthUpdated:function(c,a,b){},onAllColumnWidthsUpdated:function(a,b){},onColumnHiddenUpdated:function(b,c,a){},getOffsetWidth:function(){return(this.cm.getTotalWidth()+this.scrollOffset)+"px";},renderBody:function(){var a=this.renderRows()||"&nbsp;";return this.templates.body.apply({rows:a});},hasRows:function(){var a=this.mainBody.dom.firstChild;return a&&a.nodeType==1&&a.className!="x-grid-empty";},updateHeaders:function(){this.innerHd.firstChild.innerHTML=this.renderHeaders();this.innerHd.firstChild.style.width=this.getOffsetWidth();this.innerHd.firstChild.firstChild.style.width=this.getTotalWidth();}});Ext.override(Ext.form.Field,{adjustWidth:function(a,b){a=a.toLowerCase();if(typeof b=="number"&&!Ext.isSafari){if(Ext.isIE&&(a=="input"||a=="textarea")){if(!Ext.isStrict){return this.inEditor?b:b-3;}if(a=="input"&&Ext.isStrict){return b-(Ext.isIE6?4:1);}if(a=="textarea"&&Ext.isStrict){return b-4;}}else{if(Ext.isOpera&&Ext.isStrict){if(a=="input"){return b+2;}if(a=="textarea"){return b-2;}}}}return b;}});Ext.override(Ext.form.FileUploadField,{onRender:function(c,a){Ext.form.FileUploadField.superclass.onRender.call(this,c,a);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.createFileInput();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.addFileListener();},createFileInput:function(){this.fileInput=this.wrap.createChild({id:this.getFileInputId(),name:this.name||this.getId(),cls:"x-form-file",tag:"input",type:"file",size:1});},addFileListener:function(){this.fileInput.on({change:function(){var a=this.fileInput.dom.value;this.setValue(a);this.fireEvent("fileselected",this,a);},mouseover:function(){this.button.addClass(["x-btn-over","x-btn-focus"]);},mouseout:function(){this.button.removeClass(["x-btn-over","x-btn-focus","x-btn-click"]);},mousedown:function(){this.button.addClass("x-btn-click");},mouseup:function(){this.button.removeClass(["x-btn-over","x-btn-focus","x-btn-click"]);},scope:this});},reset:function(){this.fileInput.removeAllListeners();this.fileInput.remove();this.createFileInput();this.addFileListener();Ext.form.FileUploadField.superclass.reset.call(this);}});function deferLoad(b,k,g,f){var l=new Ext.LoadMask(Ext.getBody(),{msg:b});l.show();var d=document.createElement("script");var e=INNOAGENDA_VERSION.split(".");var a=k+"-"+e[0]+"_"+e[1]+"_"+e[2]+"-min.js";d.src=a;d.type="text/javascript";var c=false;if(Ext.isIE){d.onreadystatechange=function(){if(!c&&(this.readyState=="loaded"||this.readyState=="complete")){g();l.hide();c=true;}};}else{d.onload=function(){g();l.hide();};}document.body.appendChild(d);}function simpleDeferLoad(b){var a=document.createElement("script");a.src=b;a.type="text/javascript";document.body.appendChild(a);}var initProgressValue=0;var initProgress=0;var initProgressTask={run:function(){initProgressValue+=10;initProgressValue=(initProgressValue<=100)?initProgressValue:0;initProgress.updateProgress((initProgressValue/100),"");},interval:100};var INNOAGENDA_VERSION="1.3.0";innoAgenda.Common.hoursStore=new Ext.data.SimpleStore({fields:["hour"],data:[["0"],["1"],["2"],["3"],["4"],["5"],["6"],["7"],["8"],["9"],["10"],["11"],["12"],["13"],["14"],["15"],["16"],["17"],["18"],["19"],["20"],["21"],["22"],["23"]]});innoAgenda.Common.quarterStore=new Ext.data.SimpleStore({fields:["integer","quarter"],data:[["00","00"],["15","15"],["30","30"],["45","45"]]});innoAgenda.Common.getHour=function(){var b=new Date();minutes=parseInt(b.format("i"),10);minutes=(minutes%15);minutes=(minutes>7)?-(15-minutes):minutes;minutes=minutes*60;var a=Date.parseDate(b.format("U")-minutes,"U");return a;};innoAgenda.Contact.store=new Ext.data.Store({proxy:new Ext.data.HttpProxy({url:IACV_SERVER_URL+"contact.php"}),reader:new Ext.data.JsonReader({root:"contacts",totalProperty:"count",id:"id"},[{name:"name",mapping:"name"},{name:"id",mapping:"id"},{name:"mail",mapping:"mail"},{name:"phone",mapping:"phone"},{name:"fax",mapping:"fax"},{name:"address",mapping:"address"},{name:"cityZipCode",mapping:"cityZipCode"},{name:"cityName",mapping:"cityName"},{name:"organization"},{name:"orgFunction"},{name:"title"}])});innoAgenda.Contact.resultTpl=new Ext.XTemplate('<tpl for="."><div class="search-item">','<h3><span><div class="address">Adresse</div>{[Ext.util.Format.nl2br(values.address)]}</span>',"{[this.formatTitle(values.title)]}{name}</h3>",'<tpl if="organization"><div class="organization">{organization}<tpl if="orgFunction"> - {orgFunction}</tpl></div></tpl>','<tpl if="mail"><div class="mail">{mail}</div></tpl>','<tpl if="phone"><div class="phone">{phone}</div></tpl>','<tpl if="fax"><div class="fax">{fax}</div></tpl>',"{[this.fill(values.address, values.organization, values.mail, values.phone, values.fax)]}","</div></tpl>",{formatTitle:function(a){if(a=="M"){return"Monsieur ";}if(a=="MME"){return"Madame ";}if(a=="MELLE"){return"Mademoiselle ";}return"";},fill:function(k,b,d,g,c){var a=k.split("\n").length;var e=(b?1:0)+(d?1:0)+(g?1:0)+(c?1:0);var l=a-e;var f="";while(l>0){f+="<div>&nbsp;</div>";--l;}return f;}});innoAgenda.Contact.combo=new Ext.form.ComboBox({x:70,y:100,width:420,height:22,id:"eventPropertyContact",name:"eventPropertyContact",store:innoAgenda.Contact.store,displayField:"id",typeAhead:false,loadingText:"Recherche en cours...",emptyText:"Aucun contact défini",pageSize:3,minChars:2,hideTrigger:true,tpl:innoAgenda.Contact.resultTpl,itemSelector:"div.search-item",cls:"contactField",iaOk:false,iaRecord:null,selectOnFocus:true,onSelect:function(a){var b=a.data.title;var c=(b=="M"?"M. ":(b=="MME"?"Mme ":(b=="MELLE"?"Melle ":"")));this.setValue(c+a.data.name);Ext.getCmp("eventPropertyWhere").setValue(a.data.address);this.collapse();this.iaOk=true;this.iaRecord=a;Ext.getCmp("eventPropertyWhere").disable();Ext.getCmp("eventPropertyWhereFromContact").setValue(true);Ext.getCmp("eventPropertyWhereFromContact").enable();Ext.getCmp("eventPropertyWhereFromContactLabel").enable();innoAgenda.Windows.newEventRecapUpdate();},listeners:{expand:function(a){if(a.iaOk){Ext.getCmp("eventPropertyWhere").setValue("");}a.iaOk=false;Ext.getCmp("eventPropertyWhere").enable();Ext.getCmp("eventPropertyWhereFromContact").setValue(false);Ext.getCmp("eventPropertyWhereFromContact").disable();Ext.getCmp("eventPropertyWhereFromContactLabel").disable();},collapse:function(a){innoAgenda.Windows.newEventRecapUpdate();},blur:function(a){if(a.getValue()==""){if(a.iaOk){Ext.getCmp("eventPropertyWhere").setValue("");}a.iaOk=false;Ext.getCmp("eventPropertyWhere").enable();Ext.getCmp("eventPropertyWhereFromContact").setValue(false);Ext.getCmp("eventPropertyWhereFromContact").disable();Ext.getCmp("eventPropertyWhereFromContactLabel").disable();}innoAgenda.Windows.newEventRecapUpdate();}}});var msgTpl=new Ext.XTemplate('<div style="float:right;"><img style="height: 60px; width: 64px;" src="img/innovortex.png"/></div>','<h2 class="msgTitle">{title}</h2>','<p class="msgHeader">Envoyé par {sender} le {[this.toDate(values.receiveDate)]}</p>','<div class="msgContent">{content}</div>',{toDate:function(a){return Date.parseDate(a,"U").format("d/m/Y à H:i");}});var messageStoreMine=0;var messageStore=new Ext.data.JsonStore({root:"messages",totalProperty:"count",id:"id",baseParams:{action:"list"},fields:[{name:"id",mapping:"id"},{name:"sender",mapping:"sender"},{name:"receiver",mapping:"receiver"},{name:"isRead",mapping:"isRead"},{name:"title",mapping:"title"},{name:"content",mapping:"content"},{name:"receiveDate",mapping:"receiveDate"}],proxy:new Ext.data.HttpProxy({url:IACV_SERVER_URL+"message.php"}),toSelect:-1,listeners:{load:function(c,b,d){innoAgenda.Windows.Message.refreshMsgPanel();if(this.toSelect!=-1){var a=this.getById(this.toSelect);messageGrid.getSelectionModel().selectRecords([a]);}}}});function renderMessageList(c,d,a){var b="";b+='<div style="float:right;" id="msgDelete-'+a.data.id+'"><img onclick="innoAgenda.Windows.remove('+a.data.id+')" src="img/icons/cancel.png"/></div>';b+='<div style="float:left;" id="msgImg-'+a.data.id+'">';if(a.data.isRead){b+='<img src="img/icons/email_open.png"/>';}else{b+='<img src="img/icons/email_error.png"/>';}b+="</div>";b+='<div id="readMsg-'+a.data.id+'" style="font-weight: '+(a.data.isRead?"normal":"bold")+'; padding-left: 20px; color: #555">'+a.data.sender+"<br/>"+c+"</div>";return b;}var pagingBar=new Ext.PagingToolbar({pageSize:10,store:messageStore,displayInfo:true,displayMsg:"{0} - {1} sur {2}",emptyMsg:""});var messageGrid=new Ext.grid.GridPanel({split:true,store:messageStore,trackMouseOver:false,width:300,loadMask:true,region:"west",columns:[{id:"topic",header:"Titre",dataIndex:"title",renderer:renderMessageList,sortable:true,width:295},{header:"message",dataIndex:"message",width:100,hidden:true,sortable:true}],bbar:pagingBar,border:false,sm:new Ext.grid.RowSelectionModel({singleSelect:true,listeners:{rowselect:function(c,b,a){messageDisplay.selectMsg(a);},rowdeselect:function(c,b,a){messageDisplay.selectMsg();}}}),viewConfig:{emptyText:"Aucun message reçu."}});var messageDisplay=new Ext.Panel({region:"center",border:false,bodyStyle:{padding:"5px",overflow:"auto"},selectMsg:function(a){if(!a){Ext.get("messageContent").update('<div id="waitingMessage"><br/>Aucun message n\'est selectionné...</div>');return;}Ext.get("messageContent").update(msgTpl.applyTemplate(a.data));if(!a.data.isRead){Ext.Ajax.request({url:IACV_SERVER_URL+"message.php",params:{action:"setRead",msg:a.data.id},success:function(b){b=Ext.util.JSON.decode(b.responseText);if(b.success){a.data.isRead=true;Ext.get("msgImg-"+a.data.id).update('<img src="img/icons/email_open.png"/>');Ext.get("readMsg-"+a.data.id).applyStyles("font-weight: normal;");innoAgenda.Windows.Message.refreshMsgPanel();}}});}},html:'<div id="messageContent"><div id="waitingMessage"><br/>Aucun message n\'est selectionné...</div></div>',listeners:{actioncomplete:function(a,b){}}});innoAgenda.Windows.remove=function(a){Ext.get("msgDelete-"+a).update("<img src='img/loading16.gif'/>");Ext.Ajax.request({url:IACV_SERVER_URL+"message.php",params:{action:"remove",msg:a},success:function(b){b=Ext.util.JSON.decode(b.responseText);if(b.success){messageStore.remove(messageStore.getById(a));innoAgenda.Windows.Message.refreshMsgPanel();messageDisplay.selectMsg();}else{Ext.Msg.show({title:"Erreur",buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR,msg:b.errors.reason});}},failure:function(b){Ext.Msg.show({title:"Erreur",buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR,msg:"Impossible de joindre le serveur"});}});};innoAgenda.Windows.Message=new Ext.Window({layout:"border",width:750,height:480,resizable:true,title:"Gestion des messages",modal:true,closeAction:"hide",plain:true,id:"messageWindow",iconCls:"msgPanelIcon",refreshMsgPanel:function(){msgPanel.fetchLastMsgs();},showMsg:function(a){this.show();messageStore.load({params:{start:0,limit:10}});if(a){messageStore.toSelect=a;}},items:[messageGrid,messageDisplay]});innoAgenda.resourcesSelection.gridRecord=Ext.data.Record.create([{name:"id",type:"string"},{name:"dbId",type:"string"},{name:"name",type:"string"},{name:"type",type:"string"},{name:"info",type:"string"},{name:"desc",type:"string"},{name:"iconCls",type:"string"},{name:"resource",type:"int"}]);innoAgenda.resourcesSelection.jsonReader=new Ext.data.JsonReader({root:"",totalProperty:"total",id:"id"},innoAgenda.resourcesSelection.gridRecord);innoAgenda.resourcesSelection.gridDataStore=new Ext.data.GroupingStore({proxy:new Ext.data.HttpProxy({url:IACV_SERVER_URL+"resource.php"}),baseParams:{action:"linkedResources"},reader:innoAgenda.resourcesSelection.jsonReader,sortInfo:{field:"name",direction:"ASC"},groupField:"type",autoLoad:true,listeners:{remove:function(b,a,c){},add:function(b,a,c){}}});innoAgenda.resourcesSelection.gridColModel=new Ext.grid.ColumnModel([{header:"Nom",dataIndex:"name",sortable:true,width:120},{header:"Information",dataIndex:"info",id:"info"},{header:"Type",dataIndex:"type",hidden:true,id:"type"}]);innoAgenda.resourcesSelection.grid=new Ext.grid.GridPanel({bbar:[{text:"Supprimer la sélection",tooltip:"Supprimer la ressource sélectionnée",cls:"x-btn-text-icon",icon:"img/icons/image_delete.png",autoExpandColumn:"info",handler:function(){var a=innoAgenda.resourcesSelection.grid.selModel.getSelected();if(!a){return false;}innoAgenda.resourcesSelection.treeRoot.cascade(function(b){if(b.attributes.id==a.data.id){b.enable();return false;}return true;});if(a){innoAgenda.resourcesSelection.gridDataStore.remove(a);}return true;}}],ddGroup:"secondTreeDDGroup",view:new Ext.grid.GroupingView({forceFit:true,autoFill:true,groupTextTpl:"{group}",emptyText:"Aucune ressource réservée (Déplacer les ressources en maintenant appuyé le bouton gauche de la souris)."}),colModel:innoAgenda.resourcesSelection.gridColModel,frame:false,isTarget:true,loadMask:true,store:innoAgenda.resourcesSelection.gridDataStore,title:"Ressources réservées",region:"center",layout:"fit"});innoAgenda.resourcesSelection.treeLoader=new Ext.tree.TreeLoader({dataUrl:IACV_SERVER_URL+"resource.php",baseParams:{action:"list"}});innoAgenda.resourcesSelection.treeRoot=new Ext.tree.AsyncTreeNode({text:"Ressources",draggable:false,id:"source",expanded:true,iconCls:"tree-resources",firstLoad:true,listeners:{beforeload:function(a){if(a.attributes.firstLoad){a.attributes.firstLoad=false;return false;}return true;}}});innoAgenda.resourcesSelection.tree=new Ext.tree.TreePanel({autoScroll:true,animate:true,containerScroll:true,region:"center",root:innoAgenda.resourcesSelection.treeRoot,title:"Ressources",rootVisible:false,loader:innoAgenda.resourcesSelection.treeLoader,ddAppendOnly:true,enableDrag:true,bodyStyle:"padding: 3px;",ddGroup:"secondTreeDDGroup",listeners:{beforeclick:function(b,c){if(b.attributes.desc){var a="";if(b.attributes.photo=="1"){a+='<div class="whoAvatar"><img src="img/resources/'+b.attributes.dbId+'_64.png" /></div>';}a+="<b>"+b.attributes.text+"</b><br/>"+b.attributes.desc;innoAgenda.resourcesSelection.infoPanel.body.update(a);}else{innoAgenda.resourcesSelection.infoPanel.body.update("Sélectionnez une ressource dans la liste ci-dessus pour afficher ses informations.");}},append:function(a,c,d,b){innoAgenda.resourcesSelection.gridDataStore.each(function(e){if(d.attributes.id==e.data.id){d.disable();}});}}});innoAgenda.resourcesSelection.infoPanel=new Ext.Panel({height:130,minSize:100,maxSize:200,split:true,bodyStyle:"padding: 5px;",html:"Sélectionnez une ressource dans la liste ci-dessus pour afficher ses informations.",region:"south",title:"Informations sur la ressource"});innoAgenda.resourcesSelection.leftPanel=new Ext.Panel({layout:"border",border:false,width:250,minSize:200,maxSize:400,split:true,items:[innoAgenda.resourcesSelection.tree,innoAgenda.resourcesSelection.infoPanel],region:"west"});innoAgenda.resourcesSelection.displayPanel=new Ext.Panel({layout:"border",border:false,items:[innoAgenda.resourcesSelection.leftPanel,innoAgenda.resourcesSelection.grid],refresh:function(){var a=Ext.getCmp("eventPropertyDate").getValue();var c=Ext.getCmp("eventPropertyStart").getValue();var d=Ext.getCmp("eventPropertyStop").getValue();c=c.split(":");d=d.split(":");var e=a.add(Date.HOUR,c[0]).add(Date.MINUTE,c[1]).format("U");var b=(!(d[0]=="00"&&d[1]=="00"))?a.add(Date.HOUR,d[0]).add(Date.MINUTE,d[1]):a.add(Date.DAY,1);b=b.format("U");innoAgenda.resourcesSelection.treeLoader.baseParams={action:"list",start:e,stop:b};innoAgenda.resourcesSelection.treeRoot.reload();innoAgenda.resourcesSelection.DropTargetEl=innoAgenda.resourcesSelection.grid.getView().el.dom.childNodes[0].childNodes[1];innoAgenda.resourcesSelection.DropTarget=new Ext.dd.DropTarget(innoAgenda.resourcesSelection.DropTargetEl,{ddGroup:"secondTreeDDGroup",copy:false,notifyDrop:function(m,l,k){var g=m.dragData.node.attributes;var f=new innoAgenda.resourcesSelection.gridRecord({id:g.id,dbId:g.dbId,name:g.text,type:g.type,desc:g.desc,iconCls:g.iconCls,info:g.info});m.dragData.node.disable();innoAgenda.resourcesSelection.gridDataStore.add(f);innoAgenda.resourcesSelection.gridDataStore.sort("name","ASC");return true;}});innoAgenda.resourcesSelection.grid.getView().refresh.defer(500);}});var repetitionMonthlyWeekDayNumberStore=new Ext.data.SimpleStore({fields:["id","name"],data:repetitionMonthlyWeekDayNumberData});var repetitionMonthlyWeekDayStore=new Ext.data.SimpleStore({fields:["id","name"],data:repetitionMonthlyWeekDayData});var repetitionYearlyMonthStore=new Ext.data.SimpleStore({fields:["id","name"],data:repetitionYearlyMonthData});var repetitionMonthlyWeekDayNumberCombo=new Ext.ux.SelectBox({store:repetitionMonthlyWeekDayNumberStore,x:40,y:24,fieldLabel:"",displayField:"name",mode:"local",triggerAction:"all",emptyText:"",selectOnFocus:true,width:100,value:"premier",id:"repetitionMonthlyEveryCustomDaysDayNumber",listeners:{select:function(c,a,b){}}});var repetitionMonthlyWeekDayCombo=new Ext.ux.SelectBox({store:repetitionMonthlyWeekDayStore,x:160,y:24,fieldLabel:"",displayField:"name",mode:"local",triggerAction:"all",emptyText:"",selectOnFocus:true,width:100,value:"Lundi",id:"repetitionMonthlyEveryCustomDaysMonthNumber",listeners:{select:function(c,a,b){}}});var repetitionYearlyMonthCombo=new Ext.ux.SelectBox({store:repetitionYearlyMonthStore,x:95,y:24,displayField:"name",mode:"local",triggerAction:"all",selectOnFocus:true,width:100,value:"Janvier",id:"repetitionYearlyEveryDaysMonthNumber",listeners:{select:function(c,a,b){}}});var repetitionYearlyWeekDayNumberCombo=new Ext.ux.SelectBox({store:repetitionMonthlyWeekDayNumberStore,x:60,y:48,displayField:"name",mode:"local",triggerAction:"all",selectOnFocus:true,width:100,value:"premier",id:"repetitionYearlyEveryCustomDaysDayNumber",disabled:true,listeners:{select:function(c,a,b){}}});var repetitionYearlyWeekDayCombo=new Ext.ux.SelectBox({store:repetitionMonthlyWeekDayStore,x:180,y:48,displayField:"name",mode:"local",triggerAction:"all",selectOnFocus:true,width:100,value:"Lundi",id:"repetitionYearlyEveryCustomDaysDay",disabled:true,listeners:{select:function(c,a,b){}}});var repetitionYearlyMonthCombo2=new Ext.ux.SelectBox({store:repetitionYearlyMonthStore,x:60,y:72,displayField:"name",mode:"local",triggerAction:"all",selectOnFocus:true,width:220,value:"Janvier",id:"repetitionYearlyEveryCustomDaysMonth",disabled:true,listeners:{select:function(c,a,b){}}});var myChoices=[["1","Quotidienne"],["2","Hebdomadaire"],["3","Mensuelle"],["4","Annuelle"]];var store=new Ext.data.SimpleStore({fields:["id","name"],data:myChoices});var combo=new Ext.ux.SelectBox({store:store,x:70,y:0,id:"repetitionTypeCombo",width:120,fieldLabel:"Répétition",displayField:"name",mode:"local",triggerAction:"all",selectOnFocus:true,value:"Quotidienne",listeners:{select:function(c,a,b){if(b==0){Ext.getCmp("repetitionDailyFieldset").show();Ext.getCmp("repetitionWeeklyFieldset").hide();Ext.getCmp("repetitionMonthlyFieldset").hide();Ext.getCmp("repetitionYearlyFieldset").hide();}else{if(b==1){Ext.getCmp("repetitionDailyFieldset").hide();Ext.getCmp("repetitionWeeklyFieldset").show();Ext.getCmp("repetitionMonthlyFieldset").hide();Ext.getCmp("repetitionYearlyFieldset").hide();}else{if(b==2){Ext.getCmp("repetitionDailyFieldset").hide();Ext.getCmp("repetitionWeeklyFieldset").hide();Ext.getCmp("repetitionMonthlyFieldset").show();Ext.getCmp("repetitionYearlyFieldset").hide();}else{if(b==3){Ext.getCmp("repetitionDailyFieldset").hide();Ext.getCmp("repetitionWeeklyFieldset").hide();Ext.getCmp("repetitionMonthlyFieldset").hide();Ext.getCmp("repetitionYearlyFieldset").show();}}}}}}});function repetitionDaySelectorDayOver(a){if(a.className!="repetitionMonthlyDaySelected"&&((Ext.getCmp("repetitionTypeCombo").selectedIndex==1)||(Ext.getCmp("repetitionMonthlyEveryDaysRadio").checked))){a.className="repetitionMonthlyDayOver";}}function repetitionDaySelectorDayOut(a){if(a.className!="repetitionMonthlyDaySelected"&&((Ext.getCmp("repetitionTypeCombo").selectedIndex==1)||(Ext.getCmp("repetitionMonthlyEveryDaysRadio").checked))){a.className="repetitionMonthlyDay";}}function repetitionDaySelectorDayClick(a){if((Ext.getCmp("repetitionTypeCombo").selectedIndex==1)||(Ext.getCmp("repetitionMonthlyEveryDaysRadio").checked)){if(a.className=="repetitionMonthlyDaySelected"){a.className="repetitionMonthlyDay";}else{a.className="repetitionMonthlyDaySelected";}}}var repetitionWeeklyDaySelector='<div id="repetitionWeekDaySelector">';for(var i=1;i<8;i++){day=(i==7)?0:i;repetitionWeeklyDaySelector+='<div class="repetitionMonthlyDay"  onmouseover="repetitionDaySelectorDayOver(this)" onmouseout="repetitionDaySelectorDayOut(this)" onclick="repetitionDaySelectorDayClick(this)">'+Date.dayNames[day].substr(0,3)+"</div>";}repetitionWeeklyDaySelector+="</div>";var repetitionMonthlyDaySelector='<div id="repetitionMonthDaySelector" class="repetitionMonthlyWeek">';for(var i=0;i<5;i++){for(var j=1;j<8;j++){day=i*7+j;if(day>31){break;}repetitionMonthlyDaySelector+='<div class="repetitionMonthlyDay" onmouseover="repetitionDaySelectorDayOver(this)" onmouseout="repetitionDaySelectorDayOut(this)" onclick="repetitionDaySelectorDayClick(this)">'+day+"</div>";}}repetitionMonthlyDaySelector+="</div>";var repetitionRecap="";var repetitionParameters={};function addRepetition(){repetitionParameters={};if(Ext.getCmp("repetitionTypeCombo").selectedIndex==0||Ext.getCmp("repetitionTypeCombo").selectedIndex==-1){repetitionParameters.type=0;if(Ext.getCmp("repetitionDailyEveryDayRadio").checked==true){repetitionParameters.every=Ext.getCmp("repetitionDailyEveryDayNumber").getValue();}else{if(Ext.getCmp("repetitionDailyEveryWorkingDayRadio").checked==true){repetitionParameters.everyWorkingDay=true;}}}else{if(Ext.getCmp("repetitionTypeCombo").selectedIndex==1){repetitionParameters.type=1;repetitionParameters.every=Ext.getCmp("repetitionWeeklyEveryNumber").getValue();repetitionParameters.selectedDays={};selector=Ext.select("#repetitionWeekDaySelector div");selector.each(function(k,f,g){if(k.dom.className=="repetitionMonthlyDaySelected"){repetitionParameters.selectedDays[g+1]=true;}});}else{if(Ext.getCmp("repetitionTypeCombo").selectedIndex==2){repetitionParameters.type=2;repetitionParameters.every=Ext.getCmp("repetitionMonthlyEveryNumber").getValue();if(Ext.getCmp("repetitionMonthlyEveryCustomDaysRadio").checked==true){dayNumber=Ext.getCmp("repetitionMonthlyEveryCustomDaysDayNumber").selectedIndex;dayName=Ext.getCmp("repetitionMonthlyEveryCustomDaysMonthNumber").selectedIndex;repetitionParameters.dayNumber=(dayNumber>0)?dayNumber:0;repetitionParameters.dayName=(dayName>0)?dayName:0;}else{if(Ext.getCmp("repetitionMonthlyEveryDaysRadio").checked==true){repetitionParameters.selectedDays={};selector=Ext.select("#repetitionMonthDaySelector div");selector.each(function(k,f,g){if(k.dom.className=="repetitionMonthlyDaySelected"){repetitionParameters.selectedDays[g+1]=true;}});}}}else{if(Ext.getCmp("repetitionTypeCombo").selectedIndex==3){repetitionParameters.type=3;repetitionParameters.every=Ext.getCmp("repetitionYearlyEveryNumber").getValue();if(Ext.getCmp("repetitionYearlyEveryDaysRadio").checked==true){dayNumber=Ext.getCmp("repetitionYearlyEveryDaysNumber").getValue();monthNumber=Ext.getCmp("repetitionYearlyEveryDaysMonthNumber").selectedIndex;repetitionParameters.dayNumber=dayNumber;repetitionParameters.monthNumber=(monthNumber>0)?monthNumber:0;}else{if(Ext.getCmp("repetitionYearlyEveryCustomDaysRadio").checked==true){dayNumber=Ext.getCmp("repetitionYearlyEveryCustomDaysDayNumber").selectedIndex;day=Ext.getCmp("repetitionYearlyEveryCustomDaysDay").selectedIndex;monthNumber=Ext.getCmp("repetitionYearlyEveryCustomDaysMonth").selectedIndex;repetitionParameters.dayNumber=(dayNumber>0)?dayNumber:0;repetitionParameters.day=(day>0)?day:0;repetitionParameters.monthNumber=(monthNumber>0)?monthNumber:0;}}}}}}if(Ext.getCmp("repetitionTimeWindowNumberRadio").checked==true){repetitionParameters.nbEvents=Ext.getCmp("repetitionTimeWindowNumber").getValue();}else{if(Ext.getCmp("repetitionTimeWindowDateRadio").checked==true){repetitionParameters.endDate=Ext.getCmp("repetitionTimeWindowDate").getValue().format("U");}}var a=Ext.getCmp("eventPropertyDate").getValue();var d=Ext.getCmp("eventPropertyStart").getValue();var e=Ext.getCmp("eventPropertyStop").getValue();d=d.split(":");e=e.split(":");var c=a.add(Date.HOUR,d[0]).add(Date.MINUTE,d[1]);var b=(!(e[0]=="00"&&e[1]=="00"))?a.add(Date.HOUR,e[0]).add(Date.MINUTE,e[1]):a.add(Date.DAY,1);Ext.Ajax.request({url:IACV_SERVER_URL+"repetition.php",success:function(f){f=Ext.util.JSON.decode(f.responseText);if(f.success){Ext.getCmp("repetitionResult").body.update(f.html);repetitionRecap=f.html;innoAgenda.Windows.eventPropertiesPanel.repetitionConflictStore.removeAll();for(i=0;i<f.times.length;i++){if(f.times[i].conflict){innoAgenda.Windows.eventPropertiesPanel.repetitionConflictStore.add(new Ext.data.Record({id:i+1,start:Date.parseDate(f.times[i].start,"U"),stop:Date.parseDate(f.times[i].stop,"U"),conflict:true}));}else{innoAgenda.Windows.eventPropertiesPanel.repetitionConflictStore.add(new Ext.data.Record({id:i+1,start:Date.parseDate(f.times[i].start,"U"),stop:Date.parseDate(f.times[i].stop,"U"),conflict:false}));}}}else{}},failure:function(f){},params:{type:"add",owner:Ext.getCmp("eventPropertyWho").getValue(),ownerType:"user",start:c.format("U"),stop:b.format("U"),config:Ext.util.JSON.encode(repetitionParameters)}});}function delRepetition(){if(Ext.getCmp("repetitionResult").body){Ext.getCmp("repetitionResult").body.update("<b>Aucune répétition</b>");}repetitionRecap="";repetitionParameters={};innoAgenda.Windows.eventPropertiesPanel.repetitionConflictStore.removeAll();}innoAgenda.Windows.eventPropertiesPanel.repetitionForm=new Ext.FormPanel({frame:true,title:"Paramètres",region:"center",layout:"absolute",autoScroll:true,buttons:[{text:"Appliquer ces paramètres",id:"eventPropertyRepetitionSubmitBtn",cls:"x-btn-text-icon",icon:"img/icons/accept.png",handler:addRepetition},{text:"Supprimer la répétition",id:"eventPropertyRepetitionCancelBtn",cls:"x-btn-text-icon",icon:"img/icons/cancel.png",handler:delRepetition}],items:[{xtype:"fieldset",x:0,y:30,height:(Ext.isIE)?180:190,anchor:"100%",title:"Répétition quotidienne",defaultType:"radio",layout:"absolute",id:"repetitionDailyFieldset",items:[{xtype:"radio",id:"repetitionDailyEveryDayRadio",name:"repetitionDailyChoice",inputValue:"red",checked:true,x:0,y:0},{x:20,y:5,xtype:"label",text:"Chaque"},{x:60,y:0,xtype:"textfield",id:"repetitionDailyEveryDayNumber",value:"1",style:"text-align: center",width:30,maskRe:/[0-9]/},{x:95,y:5,xtype:"label",text:"jour(s)"},{xtype:"radio",id:"repetitionDailyEveryWorkingDayRadio",checked:false,name:"repetitionDailyChoice",inputValue:"red",x:0,y:22,handler:function(){if(Ext.getCmp("repetitionDailyEveryWorkingDayRadio").checked){Ext.getCmp("repetitionDailyEveryDayNumber").disable();}if(Ext.getCmp("repetitionDailyEveryDayRadio").checked){Ext.getCmp("repetitionDailyEveryDayNumber").enable();}}},{x:20,y:27,xtype:"label",text:"Chaque jour ouvrable"}]},{xtype:"fieldset",x:0,y:30,height:(Ext.isIE)?180:190,anchor:"100%",title:"Répétition hebdomadaire",defaultType:"radio",layout:"absolute",id:"repetitionWeeklyFieldset",hidden:true,items:[{x:0,y:5,xtype:"label",text:"Chaque"},{x:40,y:0,xtype:"textfield",id:"repetitionWeeklyEveryNumber",value:"1",style:"text-align: center",width:30,maskRe:/[0-9]/},{x:75,y:5,xtype:"label",text:"semaine(s)"},{x:0,y:27,xtype:"label",text:"Choix des jours :"},{xtype:"panel",x:0,y:47,html:repetitionWeeklyDaySelector}]},{xtype:"fieldset",x:0,y:30,height:(Ext.isIE)?180:190,anchor:"100%",title:"Répétition mensuelle",defaultType:"radio",layout:"absolute",id:"repetitionMonthlyFieldset",hidden:true,items:[{x:0,y:5,xtype:"label",text:"Chaque"},{x:40,y:0,id:"repetitionMonthlyEveryNumber",xtype:"textfield",value:"1",style:"text-align: center",width:30,maskRe:/[0-9]/},{x:75,y:5,xtype:"label",text:"mois"},{xtype:"radio",id:"repetitionMonthlyEveryCustomDaysRadio",checked:true,name:"repetitionMonthlyChoice",inputValue:"red",x:0,y:24},{x:20,y:29,xtype:"label",text:"Le"},repetitionMonthlyWeekDayNumberCombo,repetitionMonthlyWeekDayCombo,{xtype:"radio",id:"repetitionMonthlyEveryDaysRadio",name:"repetitionMonthlyChoice",inputValue:"red",x:0,y:48,handler:function(){if(Ext.getCmp("repetitionMonthlyEveryDaysRadio").checked){Ext.getCmp("repetitionMonthlyEveryCustomDaysDayNumber").disable();Ext.getCmp("repetitionMonthlyEveryCustomDaysMonthNumber").disable();Ext.getCmp("repetitionMonthlyDaySelectorPanel").removeClass("repetitionMonthlyDaySelectorDisabled");}if(Ext.getCmp("repetitionMonthlyEveryCustomDaysRadio").checked){Ext.getCmp("repetitionMonthlyEveryCustomDaysDayNumber").enable();Ext.getCmp("repetitionMonthlyEveryCustomDaysMonthNumber").enable();Ext.getCmp("repetitionMonthlyDaySelectorPanel").addClass("repetitionMonthlyDaySelectorDisabled");}}},{x:20,y:53,xtype:"label",text:"Se répète tous les"},{xtype:"panel",x:120,y:48,cls:"repetitionMonthlyDaySelectorDisabled",id:"repetitionMonthlyDaySelectorPanel",html:repetitionMonthlyDaySelector}]},{xtype:"fieldset",x:0,y:30,height:(Ext.isIE)?180:190,anchor:"100%",title:"Répétition annuelle",defaultType:"radio",layout:"absolute",id:"repetitionYearlyFieldset",hidden:true,items:[{x:0,y:5,xtype:"label",text:"Chaque"},{x:40,y:0,id:"repetitionYearlyEveryNumber",xtype:"textfield",value:"1",style:"text-align: center",width:30,maskRe:/[0-9]/},{x:75,y:5,xtype:"label",text:"année(s)"},{xtype:"radio",id:"repetitionYearlyEveryDaysRadio",name:"repetitionYearlyChoice",inputValue:"red",checked:true,x:0,y:24},{x:20,y:29,xtype:"label",text:"Chaque"},{x:60,y:24,id:"repetitionYearlyEveryDaysNumber",xtype:"textfield",value:"1",style:"text-align: center",width:30,maskRe:/[0-9]/},repetitionYearlyMonthCombo,{xtype:"radio",id:"repetitionYearlyEveryCustomDaysRadio",name:"repetitionYearlyChoice",inputValue:"red",x:0,y:48,handler:function(){if(Ext.getCmp("repetitionYearlyEveryCustomDaysRadio").checked){Ext.getCmp("repetitionYearlyEveryDaysNumber").disable();Ext.getCmp("repetitionYearlyEveryDaysMonthNumber").disable();Ext.getCmp("repetitionYearlyEveryCustomDaysDayNumber").enable();Ext.getCmp("repetitionYearlyEveryCustomDaysDay").enable();Ext.getCmp("repetitionYearlyEveryCustomDaysMonth").enable();}if(Ext.getCmp("repetitionYearlyEveryDaysRadio").checked){Ext.getCmp("repetitionYearlyEveryDaysNumber").enable();Ext.getCmp("repetitionYearlyEveryDaysMonthNumber").enable();Ext.getCmp("repetitionYearlyEveryCustomDaysDayNumber").disable();Ext.getCmp("repetitionYearlyEveryCustomDaysDay").disable();Ext.getCmp("repetitionYearlyEveryCustomDaysMonth").disable();}}},{x:20,y:53,xtype:"label",text:"Chaque"},repetitionYearlyWeekDayNumberCombo,repetitionYearlyWeekDayCombo,{x:43,y:77,xtype:"label",text:"De"},repetitionYearlyMonthCombo2]},{x:5,y:5,xtype:"label",text:"Répétition "},combo,{xtype:"radio",id:"repetitionTimeWindowNumberRadio",checked:true,name:"repetitionTime",inputValue:"1",x:5,y:230},{x:25,y:235,xtype:"label",text:"Créer "},{x:55,y:230,id:"repetitionTimeWindowNumber",xtype:"textfield",value:"1",style:"text-align: center",width:30,maskRe:/[0-9]/},{x:88,y:235,xtype:"label",text:"événement(s) supplémentaire(s)"},{xtype:"radio",id:"repetitionTimeWindowDateRadio",name:"repetitionTime",inputValue:"2",x:270,y:230,handler:function(){if(Ext.getCmp("repetitionTimeWindowDateRadio").checked){Ext.getCmp("repetitionTimeWindowNumber").disable();Ext.getCmp("repetitionTimeWindowDate").enable();}if(Ext.getCmp("repetitionTimeWindowNumberRadio").checked){Ext.getCmp("repetitionTimeWindowNumber").enable();Ext.getCmp("repetitionTimeWindowDate").disable();}}},{x:290,y:235,xtype:"label",text:"Répéter jusqu'à"},{x:370,y:230,xtype:"datefield",id:"repetitionTimeWindowDate",disabled:true,value:new Date()}]});var myData=[];innoAgenda.Windows.eventPropertiesPanel.repetitionConflictStore=new Ext.data.SimpleStore({fields:[{name:"id",type:"int"},{name:"start",type:"date",dateFormat:"d/m/Y H:i"},{name:"stop",type:"date",dateFormat:"d/m/Y H:i"},{name:"conflict"}]});innoAgenda.Windows.eventPropertiesPanel.repetitionConflictStore.loadData(myData);innoAgenda.Windows.eventPropertiesPanel.repetitionResult=new Ext.Panel({title:"Résultat",region:"center",iconCls:"repetitionResult",id:"repetitionResult",html:"<b>Aucune répétition</b>",frame:false,autoScroll:true,bodyStyle:"padding: 5px"});innoAgenda.Windows.eventPropertiesPanel.repetitionRendererId=function(c,b,a){if(a.data.conflict){return'<span style="color:red;font-weight: bold;">'+c+"</span>";}return c;};innoAgenda.Windows.eventPropertiesPanel.repetitionRendererDate=function(c,b,a){if(a.data.conflict){return'<span style="color:red;font-weight: bold;">'+a.data.start.format("d/m/Y H:i")+" > "+a.data.stop.format("H:i")+"</span>";}return a.data.start.format("d/m/Y H:i")+" > "+a.data.stop.format("H:i");};innoAgenda.Windows.eventPropertiesPanel.repetitionConflict=new Ext.grid.GridPanel({store:innoAgenda.Windows.eventPropertiesPanel.repetitionConflictStore,columns:[{id:"Id",header:"N°",renderer:innoAgenda.Windows.eventPropertiesPanel.repetitionRendererId,dataIndex:"id",width:20},{id:"Date",header:"Date",renderer:innoAgenda.Windows.eventPropertiesPanel.repetitionRendererDate,dataIndex:"start"}],viewConfig:{forceFit:true},iconCls:"repetitionEvents",title:"Evénements",autoScroll:true,frame:false,region:"south",height:200,minSize:100,maxSize:200,split:true});innoAgenda.Windows.eventPropertiesPanel.repetition=new Ext.Panel({id:"eventPropertiesRepetitionFormPanel",title:"Répétitions",iconCls:"newEventTabTitleRepeat",labelWidth:100,border:false,layout:"border",items:[innoAgenda.Windows.eventPropertiesPanel.repetitionForm,{region:"east",width:220,minSize:220,maxSize:300,split:true,layout:"border",border:false,items:[innoAgenda.Windows.eventPropertiesPanel.repetitionResult,innoAgenda.Windows.eventPropertiesPanel.repetitionConflict]}]});innoAgenda.Windows.EventAlert.delayArray=[{delay:604800,text:"<b>1 semaine avant</b>"},{delay:172800,text:"<b>2 jours avant</b>"},{delay:86400,text:"<b>1 jour avant</b>"},{delay:7200,text:"<b>2 heures avant</b>"},{delay:3600,text:"<b>1 heure avant</b>"},{delay:1800,text:"<b>1/2 heure avant</b>"},{delay:900,text:"<b>15 minutes avant</b>"},{delay:300,text:"<b>5 minutes avant</b>"}];innoAgenda.Windows.EventAlert.sliderToDelay=function(a){return innoAgenda.Windows.EventAlert.delayArray[a].delay;};innoAgenda.Windows.EventAlert.delayToSlider=function(b){var a=innoAgenda.Windows.EventAlert.delayArray;for(var c=0;c<a.length;c++){if(a[c].delay==b){return c;}}return 0;};innoAgenda.Windows.EventAlert.delayToText=function(b){var a=innoAgenda.Windows.EventAlert.delayArray;for(var c=0;c<a.length;c++){if(a[c].delay==b){return a[c].text;}}return false;};innoAgenda.Windows.EventAlert.sliderToText=function(b){var a=innoAgenda.Windows.EventAlert.sliderToDelay(b);return innoAgenda.Windows.EventAlert.delayToText(a);};innoAgenda.Windows.EventAlert.smsCredit=0;innoAgenda.Windows.EventAlert.initSms=function(){if(innoAgenda.Permissions[innoAgenda.User.id].sendSms){Ext.getCmp("eventAlertTypeRadio1").enable();Ext.getCmp("eventAlertSmsCredit").setText("Crédit : "+innoAgenda.Windows.EventAlert.smsCredit+" sms");}else{Ext.getCmp("eventAlertTypeLabel1").addClass("stroke");iacv.tooltip=new Ext.ToolTip({target:Ext.getCmp("eventAlertTypeLabel1").getEl(),width:200,showDelay:0,dismissDelay:0,html:(innoAgenda.Instance.id=="public"?"L'envoi de SMS n'est pas disponible dans la version gratuite d'innoAgenda.":"Vous n'avez pas souscrit à cette fonctionnalité, merci de contacter l'administrateur de votre agenda..."),trackMouse:false});}Ext.getCmp("eventAlertWho").setValue(Ext.getCmp("eventPropertyWho").getValue());Ext.getCmp("eventAlertWho").valueNotFoundText=Ext.getCmp("eventPropertyWho").lastSelectionText;var g=Ext.getCmp("eventPropertyWho").lastSelectionText;var d=Ext.getCmp("eventPropertyEventType").lastSelectionText;var e=Ext.getCmp("eventPropertyDate").getValue();var b=Ext.getCmp("eventPropertyStart").getValue();var l=Ext.getCmp("eventPropertyStop").getValue();b=b.split(":");l=l.split(":");var a=e.add(Date.HOUR,b[0]).add(Date.MINUTE,b[1]);var f=(!(l[0]=="00"&&l[1]=="00"))?e.add(Date.HOUR,l[0]).add(Date.MINUTE,l[1]):e.add(Date.DAY,1);var k="Du "+a.format("d/m/Y H:i")+"\n";k+="Au "+f.format("d/m/Y H:i")+"\n";k+="Type: "+((d)?d:"?")+"\n";k+="Qui: "+g+"\n";Ext.getCmp("eventAlertSmsText").setValue(k);var c=Ext.getCmp("eventAlertSmsText").getValue();Ext.getCmp("eventAlertSmsTextCount").setText(c.length+"/160");};innoAgenda.Windows.EventAlert.addAlert=function(){var d=Ext.getCmp("eventAlertWho").getValue();var f=Ext.getCmp("eventAlertWho").lastSelectionText;var c=(Ext.getCmp("eventAlertTypeRadio0").getValue())?0:(Ext.getCmp("eventAlertTypeRadio1").getValue()?1:2);var b=Ext.getCmp("eventAlertWhenSlider").getValue();if(c==1){innoAgenda.Windows.EventAlert.smsCredit--;Ext.getCmp("eventAlertSmsCredit").setText("Crédit : "+innoAgenda.Windows.EventAlert.smsCredit+" sms");}var a={who:d,userName:f,type:c,delay:innoAgenda.Windows.EventAlert.sliderToDelay(b)};switch(c){case 0:a.format=(Ext.getCmp("eventAlertMailFormatRadio1").getValue())?1:0;break;case 1:a.sms=Ext.getCmp("eventAlertSmsText").getValue();break;case 2:break;}var e=innoAgenda.Windows.EventAlert.displayPanel.result;for(i=0;i<e.length;i++){if(!e[i]){continue;}if(a.who==e[i].who&&a.delay==e[i].delay&&a.type==e[i].type){Ext.Msg.alert("Attention","Une alerte du même type est déjà présente dans la liste pour la même personne.");return false;}}innoAgenda.Windows.EventAlert.displayPanel.result[innoAgenda.Windows.EventAlert.displayPanel.result.length]=a;};innoAgenda.Windows.EventAlert.empty=function(){innoAgenda.Windows.EventAlert.displayPanel.result=[];innoAgenda.Windows.EventAlert.recapHTML();};innoAgenda.Windows.EventAlert.removeAlert=function(a){if(innoAgenda.Windows.EventAlert.displayPanel.result[a].type==1){innoAgenda.Windows.EventAlert.smsCredit++;Ext.getCmp("eventAlertSmsCredit").setText("Crédit : "+innoAgenda.Windows.EventAlert.smsCredit+" sms");}innoAgenda.Windows.EventAlert.displayPanel.result[a]=null;innoAgenda.Windows.EventAlert.recapHTML();};innoAgenda.Windows.EventAlert.recapHTML=function(c){info=(c)?true:false;c=(c)?c:innoAgenda.Windows.EventAlert.displayPanel.result;var b="";var a=0;for(var d=0;d<c.length;d++){var f=c[d];if(!f){continue;}b+='<div class="eventAlertRecapAlert">';if(!info&&!f.isSent){b+='<div class="delete" onclick="innoAgenda.Windows.EventAlert.removeAlert('+d+')"></div>';}b+="Prévenir <b>"+f.userName+"</b><br/>";var e=innoAgenda.Windows.EventAlert.delayToText(f.delay);b+=e+"<br/>";switch(f.type){case 0:case"MAIL":b+="Par Mél au format ";b+=(f.format)?"texte":"HTML";break;case 1:case"SMS":b+='Par SMS :<br/><div class="eventAlertRecapSms">'+f.sms+"</div>";break;case 2:case"POPUP":b+="Par notification Pop-up</div>";break;}b+="</div>";a++;}b=(a>0)?b:"<b>Aucune alerte</b>";if(Ext.getCmp("eventAlertRecap")&&Ext.getCmp("eventAlertRecap").body){Ext.getCmp("eventAlertRecap").body.update(b);}return b;};innoAgenda.Windows.EventAlert.sliderTip=new Ext.ux.SliderTip({getText:function(a){return innoAgenda.Windows.EventAlert.sliderToText(a.getValue());}});innoAgenda.Windows.EventAlert.slider=new Ext.Slider({width:214,increment:1,minValue:0,maxValue:7,x:0,y:20,value:4,id:"eventAlertWhenSlider",plugins:innoAgenda.Windows.EventAlert.sliderTip,listeners:{change:function(a){text=innoAgenda.Windows.EventAlert.sliderToText(a.getValue());Ext.getCmp("eventAlertWhen").setText(text,false);}}});innoAgenda.Windows.EventAlert.form=new Ext.form.FormPanel({region:"center",title:"Alertes",layout:"absolute",handlerRadioGroup:function(b,a){if(a){if(b.id=="eventAlertTypeRadio0"){Ext.getCmp("eventAlertMailFormatRadio1").enable();Ext.getCmp("eventAlertMailFormatRadio2").enable();Ext.getCmp("eventAlertMailFormatLabel1").enable();Ext.getCmp("eventAlertMailFormatLabel2").enable();Ext.getCmp("eventAlertSmsText").disable();Ext.getCmp("eventAlertSmsTextCount").disable();Ext.getCmp("eventAlertSmsCredit").disable();}else{if(b.id=="eventAlertTypeRadio1"){Ext.getCmp("eventAlertMailFormatRadio1").disable();Ext.getCmp("eventAlertMailFormatRadio2").disable();Ext.getCmp("eventAlertMailFormatLabel1").disable();Ext.getCmp("eventAlertMailFormatLabel2").disable();Ext.getCmp("eventAlertSmsText").enable();Ext.getCmp("eventAlertSmsTextCount").enable();Ext.getCmp("eventAlertSmsCredit").enable();}else{if(b.id=="eventAlertTypeRadio2"){Ext.getCmp("eventAlertMailFormatRadio1").disable();Ext.getCmp("eventAlertMailFormatRadio2").disable();Ext.getCmp("eventAlertMailFormatLabel1").disable();Ext.getCmp("eventAlertMailFormatLabel2").disable();Ext.getCmp("eventAlertSmsText").disable();Ext.getCmp("eventAlertSmsTextCount").disable();Ext.getCmp("eventAlertSmsCredit").disable();}}}}},bbar:["->",{xtype:"tbbutton",cls:"x-btn-text-icon",icon:"img/icons/add.png",text:"Ajouter l'alerte",handler:function(){innoAgenda.Windows.EventAlert.addAlert();innoAgenda.Windows.EventAlert.recapHTML();}}],items:[{xtype:"fieldset",x:5,y:5,height:(Ext.isIE)?90:100,width:200,title:"Type d'alerte",layout:"absolute",items:[{id:"eventAlertTypeLabel0",xtype:"label",text:"Alerte par Mél",x:20,y:5},{xtype:"radio",id:"eventAlertTypeRadio0",name:"eventAlertTypeRadio",inputValue:0,checked:true,x:0,y:0,listeners:{check:function(b,a){innoAgenda.Windows.EventAlert.form.handlerRadioGroup(b,a);}}},{id:"eventAlertTypeLabel1",xtype:"label",html:"Alerte SMS",height:16,x:20,y:25},{xtype:"radio",id:"eventAlertTypeRadio1",name:"eventAlertTypeRadio",inputValue:1,x:0,y:22,disabled:true,listeners:{check:function(b,a){innoAgenda.Windows.EventAlert.form.handlerRadioGroup(b,a);}}},{xtype:"label",text:"Notification 'Pop-up'",x:20,y:49},{xtype:"radio",id:"eventAlertTypeRadio2",name:"eventAlertTypeRadio",inputValue:2,x:0,y:44,listeners:{check:function(b,a){innoAgenda.Windows.EventAlert.form.handlerRadioGroup(b,a);}}}]},{xtype:"fieldset",x:215,y:5,height:(Ext.isIE)?90:100,width:285,title:"Qui ?",layout:"absolute",items:[{xtype:"label",html:"Personne recevant l'alerte :",x:0,y:0},{x:0,y:20,xtype:"treecombobox",fieldLabel:"Qui ?",id:"eventAlertWho",name:"eventAlertWho",hiddenName:"eventAlertWhoId",cls:"treeComboBoxEventUser",treeConfig:{autoScroll:true,animate:true,lines:true,containerScroll:true,loader:new Ext.tree.TreeLoader({baseParams:{type:"who",showOnlyGroups:true},dataUrl:IACV_SERVER_URL+"group.php"}),root:new Ext.tree.AsyncTreeNode({text:"Groupes",draggable:false,expanded:true,id:"base"}),rootVisible:false},width:260}]},{xtype:"fieldset",x:5,y:110,height:(Ext.isIE)?210:220,width:495,title:"Paramètres",layout:"absolute",items:[{xtype:"label",html:"<b>Prévenir</b>",x:0,y:0},{xtype:"label",html:"<b>1 heure avant</b>",id:"eventAlertWhen",x:52,y:0},innoAgenda.Windows.EventAlert.slider,{xtype:"label",id:"eventAlertMailFormatLabel1",text:"Envoyer le mail au format simple (texte brut)",x:20,y:55},{xtype:"radio",id:"eventAlertMailFormatRadio1",name:"eventAlertMailFormatRadio",inputValue:0,x:0,y:50},{xtype:"label",id:"eventAlertMailFormatLabel2",text:"Envoyer le mail au format élaboré (HTML)",x:20,y:75},{xtype:"radio",id:"eventAlertMailFormatRadio2",name:"eventAlertMailFormatRadio",inputValue:1,checked:true,x:0,y:70},{xtype:"label",html:"<b>Contenu du SMS</b>",x:270,y:0},{xtype:"textarea",width:200,height:100,x:270,y:20,id:"eventAlertSmsText",disabled:true,maxLength:160,enableKeyEvents:true,maxLengthText:"Un message SMS est limité à 160 caractères.",listeners:{keydown:function(a,c){var b=a.getValue();Ext.getCmp("eventAlertSmsTextCount").setText(b.length+"/160");}}},{xtype:"label",text:"0/160",id:"eventAlertSmsTextCount",x:400,y:0,width:70,disabled:true,style:"text-align: right"},{xtype:"label",text:"",id:"eventAlertSmsCredit",x:300,y:125,width:170,disabled:true,style:"text-align: right"}]}]});innoAgenda.Windows.EventAlert.recap=new Ext.Panel({region:"east",id:"eventAlertRecap",title:"Récapitulatif des alertes",html:"<b>Aucune alerte</b>",width:220,split:true,bodyStyle:"padding: 5px",autoScroll:true});innoAgenda.Windows.EventAlert.displayPanel=new Ext.Panel({id:"eventPropertiesAlertFormPanel",title:"Alertes",iconCls:"newEventTabTitleAlerts",layout:"border",border:false,result:[],items:[innoAgenda.Windows.EventAlert.form,innoAgenda.Windows.EventAlert.recap],listeners:{afterlayout:function(){innoAgenda.Windows.EventAlert.initSms();}}});innoAgenda.EventCharge.gridRecord=Ext.data.Record.create([{name:"id",type:"string"},{name:"dbId",type:"string"},{name:"name",type:"string"},{name:"quantity",type:"float"},{name:"cv",type:"int"},{name:"total",type:"float"},{name:"type",type:"string"},{name:"path",type:"string"},{name:"coeff",type:"float"},{name:"constant",type:"float"},{name:"kmCosts"},{name:"marked",type:"boolean"},{name:"kmType",type:"string"},{name:"modified",type:"boolean"}]);innoAgenda.EventCharge.reader=new Ext.data.JsonReader({root:"base",totalProperty:"count",id:"id"},innoAgenda.EventCharge.gridRecord);innoAgenda.EventCharge.gridDataStore=new Ext.data.Store({reader:innoAgenda.EventCharge.reader,sortInfo:{field:"path",direction:"ASC"}});innoAgenda.EventCharge.recapHTML=function(c){c=(c)?c:innoAgenda.Windows.EventAlert.displayPanel.result;var b="";var a=0;for(var d=0;d<c.length;d++){var e=c[d];if(!e){continue;}b+='<div class="eventChargeRecapCharge">';switch(e.info.type){case"KM":b+="Frais <b>kilométrique</b> - <b>"+e.type.name+"</b><br/>";b+="Puissance fiscale : <b>"+e.info.cv+" CV</b><br/>";b+="Distance parcourue : <b>"+e.info.quantity+" Km</b><br/>";b+="Total : <b>"+roundDec(e.info.total)+" €</b><br/>";break;case"FIXED":b+="Frais <b>au forfait</b> - <b>"+e.type.name+"</b><br/>";b+="Coût unitaire : <b>"+e.info.coeff+" €</b><br/>";b+="Quantité : <b>"+e.info.quantity+"</b><br/>";b+="Constante : <b>"+e.info.constant+" €</b><br/>";b+="Total : <b>"+roundDec(e.info.total)+" €</b><br/>";break;case"REAL":b+="Frais <b>réel</b> - <b>"+e.type.name+"</b><br/>";b+="Coût : <b>"+roundDec(e.info.total)+" €</b><br/>";b+="Quantité (pour information) : <b>"+e.info.quantity+"</b><br/>";break;}b+="</div>";a++;}b=(a>0)?b:"<b>Aucun frais</b>";return b;};innoAgenda.EventCharge.gridColModel=new Ext.grid.ColumnModel([{dataIndex:"name",header:"Frais",sortable:true,width:200,renderer:function(c,d,a){var b="";if(a.get("marked")){b="font-weight: bold; color: green;";}if(a.get("type")=="KM"&&innoAgenda.EventCharge.hasLaterKmCharges){b="font-weight: bold; color: red;";}return(b?"<font style='"+b+"'>":"")+c+(b?"</font>":"");}},{header:"Qté / km",dataIndex:"quantity",sortable:true,width:50,renderer:function(c,d,a){if(a.get("type")=="KM"){c+=" km";}var b="";if(a.get("marked")){b="font-weight: bold; color: green;";}if(a.get("type")=="KM"&&innoAgenda.EventCharge.hasLaterKmCharges){b="font-weight: bold; color: red;";}return(b?"<font style='"+b+"'>":"")+c+(b?"</font>":"");}},{header:"Coeff",dataIndex:"coeff",sortable:true,width:40,renderer:function(c,d,a){var b="";if(a.get("marked")){b="font-weight: bold; color: green;";}if(a.get("type")=="KM"&&innoAgenda.EventCharge.hasLaterKmCharges){b="font-weight: bold; color: red;";}return(b?"<font style='"+b+"'>":"")+c+(b?"</font>":"");}},{header:"CV",dataIndex:"cv",width:40,sortable:true,renderer:function(b,c,a){if(a.get("type")!="KM"){return"<font color='#909090'>N.A.</font>";}else{if(a.get("type")=="KM"&&innoAgenda.EventCharge.hasLaterKmCharges){return"<font style='font-weight: bold; color: red;'>"+b+"</font>";}}if(a.get("marked")){return"<font style='font-weight: bold; color: green;'>"+b+"</font>";}else{return b;}}},{header:"Total",dataIndex:"total",width:50,sortable:true,renderer:function(b,c,a){b=roundDec(b,2);if(a.get("type")=="KM"&&innoAgenda.EventCharge.hasLaterKmCharges){return"<font style='font-weight: bold; color: red;'>"+b+" €</font>";}if(a.get("marked")){return"<font style='font-weight: bold; color: green;'>"+b+" €</font>";}else{return"<b>"+b+" €</b>";}}},{header:"",dataIndex:"",width:20,menuDisabled:true,sortable:false,hideable:false,resizable:false,renderer:function(b,c,a){return'<img style="width: 16px; height: 16px;" onclick="innoAgenda.EventCharge.remove('+a.id+')" src="img/icons/cancel.png"/>';}}]);innoAgenda.EventCharge.remove=function(c,d){var a=innoAgenda.EventCharge.gridDataStore.getById(c);if(!d&&a.get("type")=="KM"&&innoAgenda.EventCharge.hasLaterKmCharges){Ext.MessageBox.confirm("Confirmation","Le frais kilométrique que vous souhaitez supprimer peut impacter la tranche des frais kilométriques postérieurs déja posés.<br/><br/> Confirmez-vous cette action ?<br/>",function(e){if(e=="yes"){innoAgenda.EventCharge.remove(c,true);}});return;}else{if(!d&&a.get("marked")){Ext.MessageBox.confirm("Confirmation","Le frais que vous souhaitez supprimer est déjà clôturé.<br/><br/> Confirmez-vous cette suppression ?<br/>",function(e){if(e=="yes"){innoAgenda.EventCharge.remove(c,true);}});return;}}innoAgenda.EventCharge.gridDataStore.remove(a);var b=false;innoAgenda.EventCharge.gridDataStore.each(function(e){if(e.get("marked")){b=true;}});};innoAgenda.EventCharge.grid=new Ext.grid.GridPanel({ddGroup:"secondTreeDDGroup",view:new Ext.grid.GridView({autoFill:true,forceFit:true,emptyText:"Aucun frais sélectionné. (Déplacer les types de frais en maintenant appuyé le bouton gauche de la souris)"}),changeSelectedRecord:function(){innoAgenda.EventCharge.grid.selectedRecord=innoAgenda.EventCharge.grid.getSelectionModel().getSelected();},cm:innoAgenda.EventCharge.gridColModel,sm:new Ext.grid.RowSelectionModel({singleSelect:true,listeners:{selectionchange:function(b){if(b.getCount()==0){Ext.getCmp("ChargesTypeKilometers").hide();Ext.getCmp("ChargesTypeStandard").hide();Ext.getCmp("ChargesNoSelection").show();Ext.getCmp("markedChargeAlert").hide();Ext.getCmp("postKmChargeAlert").hide();innoAgenda.EventCharge.detailsPanelWithAlert.setTitle("Détails");}else{Ext.getCmp("ChargesNoSelection").hide();var a=b.getSelected();if(a.get("marked")){Ext.getCmp("markedChargeAlert").show();Ext.getCmp("postKmChargeAlert").hide();}if(a.get("type")=="KM"){Ext.getCmp("ChargesTypeStandard").hide();Ext.getCmp("ChargesTypeKilometers").show();Ext.getCmp("KilometersNb").setRawValue(a.data.quantity);Ext.getCmp("KilometersCV").setRawValue(a.data.cv);if(innoAgenda.EventCharge.hasLaterKmCharges){Ext.getCmp("markedChargeAlert").hide();Ext.getCmp("postKmChargeAlert").show();}}else{if(a.data.type=="FIXED"){Ext.getCmp("ChargesTypeKilometers").hide();Ext.getCmp("ChargesTypeStandard").show();Ext.getCmp("ChargeReal").hide();Ext.getCmp("ChargeFixed").show();Ext.getCmp("ChargeTypeFixed").setValue(true);Ext.getCmp("ChargeTypeReal").setValue(false);Ext.getCmp("ChargeUnitCost").setRawValue(a.data.coeff);Ext.getCmp("ChargeFixedQty").setRawValue(a.data.quantity);Ext.getCmp("ChargeTotalField").getEl().update("<b>"+roundDec(a.get("coeff")*a.get("quantity")+a.get("constant"))+" €</b>");}else{if(a.get("type")=="REAL"){Ext.getCmp("ChargesTypeKilometers").hide();Ext.getCmp("ChargesTypeStandard").show();Ext.getCmp("ChargeFixed").hide();Ext.getCmp("ChargeReal").show();Ext.getCmp("ChargeTypeReal").setValue(true);Ext.getCmp("ChargeTypeFixed").setValue(false);Ext.getCmp("ChargeRealCost").setRawValue(a.data.total);Ext.getCmp("ChargeRealQty").setRawValue(a.data.quantity);}}}innoAgenda.EventCharge.detailsPanelWithAlert.setTitle("Détails ("+a.get("name")+")");Ext.getCmp("ChargeReal").doLayout();Ext.getCmp("ChargeFixed").doLayout();Ext.getCmp("ChargesTypeStandard").doLayout();Ext.getCmp("ChargesTypeKilometers").doLayout();}}}}),clicksToEdit:1,frame:false,isTarget:true,loadMask:true,border:false,store:innoAgenda.EventCharge.gridDataStore,title:"Frais sélectionné(s)",region:"center",layout:"fit"});innoAgenda.EventCharge.treeRoot=new Ext.tree.AsyncTreeNode({text:"Types",draggable:false,expanded:true,id:"base"});innoAgenda.EventCharge.tree=new Ext.tree.TreePanel({autoScroll:true,animate:true,containerScroll:true,region:"center",split:true,root:innoAgenda.EventCharge.treeRoot,title:"Types de frais",rootVisible:false,loader:new Ext.tree.TreeLoader({dataUrl:IACV_SERVER_URL+"charges.php",baseParams:{action:"fetchTypes"}}),ddAppendOnly:true,enableDrag:true,bodyStyle:"padding: 3px;",ddGroup:"secondTreeDDGroup"});innoAgenda.EventCharge.firstLoad=true;innoAgenda.EventCharge.switchTypes=function(b,c){if(c){var a=innoAgenda.EventCharge.grid.getSelectionModel().getSelected();if(b.id=="ChargeTypeFixed"){Ext.getCmp("ChargeFixed").show();Ext.getCmp("ChargeReal").hide();a.set("type","FIXED");a.set("total",a.get("coeff")*a.get("quantity")+a.get("constant"));Ext.getCmp("ChargeUnitCost").setRawValue(a.get("coeff"));Ext.getCmp("ChargeFixedQty").setRawValue(a.get("quantity"));Ext.getCmp("ChargeTotalField").getEl().update("<b>"+roundDec(a.get("total"))+" €</b>");Ext.getCmp("ChargeFixedQty").focus(true);}else{if(b.id=="ChargeTypeReal"){Ext.getCmp("ChargeFixed").hide();Ext.getCmp("ChargeReal").show();a.set("type","REAL");Ext.getCmp("ChargeRealCost").setRawValue(0);Ext.getCmp("ChargeRealQty").setRawValue(a.get("quantity"));a.set("total",0);Ext.getCmp("ChargeRealCost").focus(true);}}}};innoAgenda.EventCharge.getKmCost=function(a){var d=a.get("kmCosts");var c=a.get("cv");for(var b in d){if(typeof d[b]!="function"&&c>=d[b].powerMin&&c<=d[b].powerMax){return{coeff:parseFloat(d[b]["coeff"]),constant:parseFloat(d[b]["constant"])};}}return{coeff:a.get("coeff"),constant:a.get("constant")};};innoAgenda.EventCharge.alertPanel=new Ext.Panel({id:"EventChargeAlerts",region:"south",layout:"fit",height:20,width:"100%",border:false,hidden:false,items:[{id:"markedChargeAlert",hidden:true,border:false,height:20,xtype:"panel",html:"<div style='background-color: green;' class='EventChargeAlertPanel'>Ce frais est d'ores et déjà clôturé.<br/>&nbsp;</div>"},{id:"postKmChargeAlert",hidden:true,border:false,height:20,xtype:"panel",html:"<div style='background-color: red;' class='EventChargeAlertPanel'>La modification de ce frais peut engendrer un changement de tranche.<br/>&nbsp;</div>"}]});innoAgenda.EventCharge.detailsPanel=new Ext.Panel({region:"center",layout:"absolute",border:false,bodyStyle:"padding: 5px;",items:[{id:"ChargesNoSelection",xtype:"panel",border:false,layout:"fit",hidden:false,x:5,y:0,height:120,bodyStyle:"padding: 10px;",width:"100%",html:'<font style="color: gray;">Veuillez sélectionner un élément. Aucun frais sélectionné (Cliquer sur un élément de la liste ci-dessus).</font>'},{id:"ChargesTypeKilometers",xtype:"panel",border:false,layout:"absolute",hidden:true,bodyStyle:"padding: 0px;",x:5,y:0,height:120,width:"100%",items:[{xtype:"label",x:15,y:10,text:"Puissance fiscale"},{x:120,y:5,xtype:"numberfield",id:"KilometersCV",maxValue:100,allowNegative:false,allowDecimal:false,width:60,validateOnBlur:false,beforeBlur:Ext.emptyFn,validationDelay:0,lastValidValue:0,listeners:{valid:function(d){var a=innoAgenda.EventCharge.grid.selectedRecord;a.set("cv",d.getValue()?d.getValue():0);var c=innoAgenda.EventCharge.getKmCost(a);var b=a.get("quantity")*c.coeff+c.constant;a.set("total",b);a.set("modified",true);a.set("coeff",c.coeff);this.lastValidValue=d.getValue();},invalid:function(a,b){a.setValue(this.lastValidValue);},focus:function(a){a.lastValidValue=a.getValue();innoAgenda.EventCharge.grid.changeSelectedRecord();}}},{xtype:"label",x:190,y:10,text:"CV"},{x:15,y:35,xtype:"label",text:"Distance parcourue"},{x:120,y:30,xtype:"numberfield",id:"KilometersNb",width:60,decimalPrecision:5,validateOnBlur:false,beforeBlur:Ext.emptyFn,validationDelay:0,listeners:{valid:function(g){var a=innoAgenda.EventCharge.grid.selectedRecord;a.set("quantity",g.getValue()?g.getValue():0);var d=innoAgenda.EventCharge.getKmCost(a);var c=a.get("quantity")*d.coeff+d.constant;a.set("total",c);var f=g.getValue()?g.getValue():0;if(a.get("type")=="KM"){var k=innoAgenda.EventCharge.totalKm.auto;var b=innoAgenda.EventCharge.totalKm.bike;var e=innoAgenda.EventCharge.totalKm.moped;innoAgenda.EventCharge.gridDataStore.each(function(l){if(l.get("kmType")=="auto"){k+=l.get("quantity");}else{if(l.get("kmType")=="bike"){b+=l.get("quantity");}else{if(l.get("kmType")=="moped"){e+=l.get("quantity");}}}});Ext.get("totalKmAuto").update(k);Ext.get("totalKmBike").update(b);Ext.get("totalKmMoped").update(e);}a.set("modified",true);},focus:innoAgenda.EventCharge.grid.changeSelectedRecord}},{xtype:"label",x:190,y:35,text:"km"}]},{id:"ChargesTypeStandard",xtype:"panel",border:false,layout:"absolute",hidden:true,bodyStyle:"padding: 0px;",x:5,y:0,height:120,width:"100%",items:[{xtype:"label",x:15,y:10,text:"Type"},{x:100,y:5,xtype:"radio",id:"ChargeTypeFixed",name:"ChargeType",checked:false,handler:innoAgenda.EventCharge.switchTypes},{xtype:"label",x:120,y:10,text:"Forfait"},{x:190,y:5,xtype:"radio",id:"ChargeTypeReal",name:"ChargeType",checked:true,handler:innoAgenda.EventCharge.switchTypes},{xtype:"label",x:210,y:10,text:"Réel"},{id:"ChargeFixed",x:0,y:30,layout:"absolute",height:100,width:"100%",border:false,hidden:true,items:[{x:15,y:5,xtype:"label",text:"Quantité"},{x:100,y:0,xtype:"numberfield",id:"ChargeFixedQty",decimalPrecision:5,validateOnBlur:false,beforeBlur:Ext.emptyFn,validationDelay:0,width:60,listeners:{valid:function(c){var a=innoAgenda.EventCharge.grid.selectedRecord;a.set("quantity",c.getValue()?c.getValue():0);var b=c.getValue()*a.get("coeff")+a.get("constant");Ext.getCmp("ChargeTotalField").getEl().update("<b>"+roundDec(b)+" €</b>");a.set("total",b);a.set("modified",true);},focus:innoAgenda.EventCharge.grid.changeSelectedRecord}},{x:230,y:5,xtype:"label",text:"Coefficient"},{x:335,y:0,xtype:"numberfield",id:"ChargeUnitCost",width:60,decimalPrecision:5,validateOnBlur:false,beforeBlur:Ext.emptyFn,validationDelay:0,listeners:{valid:function(c){var a=innoAgenda.EventCharge.grid.selectedRecord;a.set("coeff",c.getValue()?c.getValue():0);var b=c.getValue()*a.get("quantity")+a.get("constant");Ext.getCmp("ChargeTotalField").getEl().update("<b>"+roundDec(b)+" €</b>");a.set("total",b);a.set("modified",true);},focus:innoAgenda.EventCharge.grid.changeSelectedRecord}},{x:405,y:5,xtype:"label",text:"€"},{x:15,y:30,xtype:"label",html:"<b>Total</b>"},{x:100,y:30,id:"ChargeTotalField",xtype:"label",html:"</b>0.00 €</b>"}]},{id:"ChargeReal",x:0,y:30,layout:"absolute",height:100,width:"100%",border:false,hidden:true,items:[{x:15,y:5,xtype:"label",text:"Quantité"},{x:100,y:0,xtype:"numberfield",id:"ChargeRealQty",decimalPrecision:5,width:60,validateOnBlur:false,beforeBlur:Ext.emptyFn,validationDelay:0,listeners:{valid:function(b){var a=innoAgenda.EventCharge.grid.selectedRecord;a.set("quantity",b.getValue()?b.getValue():0);a.set("modified",true);},focus:innoAgenda.EventCharge.grid.changeSelectedRecord}},{x:230,y:5,xtype:"label",text:"Montant"},{x:335,y:0,xtype:"numberfield",id:"ChargeRealCost",width:60,validateOnBlur:false,beforeBlur:Ext.emptyFn,validationDelay:0,listeners:{valid:function(c){var a=innoAgenda.EventCharge.grid.selectedRecord;var b=c.getValue();Ext.getCmp("ChargeTotalField").getEl().update("<b>"+roundDec(b)+" €</b>");a.set("total",b);a.set("modified",true);},focus:innoAgenda.EventCharge.grid.changeSelectedRecord}},{x:405,y:5,xtype:"label",text:"€"}]}]}]});innoAgenda.EventCharge.detailsPanelWithAlert=new Ext.Panel({region:"south",layout:"border",title:"Détails",height:130,split:true,border:false,items:[innoAgenda.EventCharge.detailsPanel,innoAgenda.EventCharge.alertPanel]});innoAgenda.EventCharge.totalKm={auto:0,bike:0,moped:0};innoAgenda.EventCharge.hasLaterKmCharges=false;innoAgenda.EventCharge.chargesDate=new Date();innoAgenda.EventCharge.recapKm=new Ext.Panel({region:"center",layout:"fit",border:true,title:'Distance parcourue depuis le <span id="yearBegin"></span>',html:'<div style="font-size: 12px; font-weight: bold; padding: 5px">Automobile : <span id="totalKmAuto">0</span> km<br/>Mobylette : <span id="totalKmBike">0</span> km<br/>Cyclomoteur : <span id="totalKmMoped">0</span> km<br/></div>'});innoAgenda.EventCharge.legendPanel=new Ext.Panel({region:"east",layout:"fit",width:180,border:true,title:"Légende",html:'<div style="font-size: 12px; font-weight: bold; padding: 5px"><font style="color: green;">Frais clôturés</font><br/><font style="color: red;">Frais kilométriques à venir</font></div>'});innoAgenda.EventCharge.northPanel=new Ext.Panel({region:"north",layout:"border",border:false,height:90,items:[innoAgenda.EventCharge.recapKm,innoAgenda.EventCharge.legendPanel]});innoAgenda.Windows.eventPropertiesPanel.charge=new Ext.Panel({title:"Frais",layout:"border",iconCls:"newEventTabTitleCharges",id:"eventTabCharge",items:[{xtype:"panel",region:"west",layout:"border",border:false,id:"eventPropertiesPanelChargeWestPanel",width:250,minSize:200,maxSize:400,items:[innoAgenda.EventCharge.tree]},{xtype:"panel",region:"center",layout:"border",items:[innoAgenda.EventCharge.northPanel,innoAgenda.EventCharge.grid,innoAgenda.EventCharge.detailsPanelWithAlert]}],listeners:{afterlayout:function(){var a=Ext.getCmp("eventPropertyStart").getValue().split(":");var e=innoAgenda.EventCharge.chargesDate=Ext.getCmp("eventPropertyDate").getValue().add(Date.HOUR,a[0]).add(Date.MINUTE,a[1]);var f=e.add(Date.DAY,0-e.getDayOfYear()).clearTime();Ext.get("yearBegin").update(f.format("d/m/Y"));Ext.Ajax.request({url:IACV_SERVER_URL+"charges.php",success:function(g){g=Ext.util.JSON.decode(g.responseText);if(g.success){var m=innoAgenda.EventCharge.totalKm.auto=g.auto;var k=innoAgenda.EventCharge.totalKm.bike=g.bike;var l=innoAgenda.EventCharge.totalKm.moped=g.moped;innoAgenda.EventCharge.gridDataStore.each(function(n){if(n.get("kmType")=="auto"){m+=n.get("quantity");}else{if(n.get("kmType")=="bike"){k+=n.get("quantity");}else{if(n.get("kmType")=="moped"){l+=n.get("quantity");}}}});Ext.get("totalKmAuto").update(m);Ext.get("totalKmBike").update(k);Ext.get("totalKmMoped").update(l);}},failure:function(g){},params:{action:"fetchTotalKm",begin:f.format("U"),end:e.format("U")-1,user:Ext.getCmp("eventPropertyWho").getValue()}});innoAgenda.EventCharge.hasLaterKmCharges=false;var b=Ext.getCmp("eventPropertyStop").getValue().split(":");var d=Ext.getCmp("eventPropertyDate").getValue().add(Date.HOUR,b[0]).add(Date.MINUTE,b[1]);Ext.Ajax.request({url:IACV_SERVER_URL+"charges.php",success:function(g){g=Ext.util.JSON.decode(g.responseText);if(g.success){innoAgenda.EventCharge.hasLaterKmCharges=(g.value?true:false);innoAgenda.EventCharge.grid.getView().refresh();}},failure:function(g){},params:{action:"hasLaterKmCharges",later:d.format("U")}});innoAgenda.EventCharge.DropTargetEl=innoAgenda.EventCharge.grid.getView().el.dom.childNodes[0].childNodes[1];innoAgenda.EventCharge.DropTarget=new Ext.dd.DropTarget(innoAgenda.EventCharge.DropTargetEl,{ddGroup:"secondTreeDDGroup",copy:false,notifyDrop:function(p,o,n){var l=p.dragData.node.attributes.kmCosts;var q={};var m=false;for(var k in l){if(typeof l[k]!="function"&&l[k].powerMin==0){q.coeff=parseFloat(l[k]["coeff"]);q.constant=parseFloat(l[k]["constant"]);m=true;break;}}if(!m){q.coeff=parseFloat(p.dragData.node.attributes.coeff);q.constant=parseFloat(p.dragData.node.attributes.constant);}if(p.dragData.node.leaf){var g=new innoAgenda.EventCharge.gridRecord({id:p.dragData.node.attributes.id,dbId:p.dragData.node.attributes.dbId,name:p.dragData.node.attributes.text,path:p.dragData.node.attributes.path,coeff:(p.dragData.node.attributes.type=="KM"?q.coeff:(p.dragData.node.attributes.coeff?parseFloat(p.dragData.node.attributes.coeff):false)),constant:(p.dragData.node.attributes.type=="KM"?q.coeff:(p.dragData.node.attributes.constant?parseFloat(p.dragData.node.attributes.constant):false)),total:(p.dragData.node.attributes.type=="KM"||p.dragData.node.attributes.type=="REAL"?0:parseFloat(p.dragData.node.attributes.coeff)+parseFloat(p.dragData.node.attributes.constant)),quantity:(p.dragData.node.attributes.type=="KM"?0:1),cv:(p.dragData.node.attributes.type=="KM"?0:-1),type:p.dragData.node.attributes.type,kmCosts:l,marked:false,kmType:p.dragData.node.attributes.kmType,modified:false});innoAgenda.EventCharge.gridDataStore.add(g);innoAgenda.EventCharge.gridDataStore.sort("name","ASC");innoAgenda.EventCharge.grid.getSelectionModel().selectRecords([g]);return true;}return false;},notifyOver:function(l,k,g){if(l.dragData.node.leaf){return l.dropAllowed;}else{return l.dropNotAllowed;}}});var c=new Ext.util.DelayedTask(function(){innoAgenda.EventCharge.grid.getView().refresh();});c.delay(500);}}});innoAgenda.Charges.createTooltip=function(a){var c="<div class='tooltipContent'>";c+="<h1 style='background-image: url(img/icons/date.png)'>";c+="Détail de l'événement</h1>";c+="<div class='iacvYearEventRecap'>";var d=Date.parseDate(a.get("eventStart"),"U");var b=Date.parseDate(a.get("eventStop"),"U");c+="<b>"+a.get("eventTypePath")+"</b><br/>";c+="Titre: "+(a.get("eventTitle")?a.get("eventTitle"):"Pas de titre")+"</b><br/>";c+="Du "+d.format("d/m/Y")+" à "+d.format("H:i");c+=" au "+b.format("d/m/Y")+" à "+b.format("H:i");c+="</div></div>";return c;};innoAgenda.Charges.findValidDate=function(c,b){if(c=="month"){var a=new Date().clearTime();if(b){return a.getFirstDateOfMonth();}else{return a.getLastDateOfMonth();}}return a;};innoAgenda.Charges.gridDataStore=new Ext.data.JsonStore({proxy:new Ext.data.HttpProxy({url:IACV_SERVER_URL+"charges.php"}),root:"charges",totalProperty:"count",id:"id",baseParams:{action:"fetchCharges"},sortInfo:{field:"date",direction:"ASC"},fields:[{name:"id",type:"string",mapping:"id"},{name:"dbId",type:"string",mapping:"dbId"},{name:"selected",type:"boolean",mapping:"selected"},{name:"isSelectable",type:"boolean",mapping:"isSelectable"},{name:"date",type:"date",dateFormat:"U",mapping:"date"},{name:"chargetypeName",type:"string",mapping:"chargetypeName"},{name:"type",type:"string",mapping:"type"},{name:"quantity",type:"float",mapping:"quantity"},{name:"coeff",type:"float",mapping:"coeff"},{name:"constant",type:"float",mapping:"constant"},{name:"total",type:"float",mapping:"total"},{name:"modified",type:"boolean",mapping:"modified"},{name:"marked",type:"boolean",mapping:"marked"},{name:"eventStart",mapping:"eventStart"},{name:"eventStop",mapping:"eventStop"},{name:"eventTypePath",type:"string",mapping:"eventTypePath"},{name:"eventTitle",type:"string",mapping:"eventTitle"}],listeners:{load:function(c,b,d){var a=0;innoAgenda.Charges.gridDataStore.each(function(e){if(e.get("selected")){a+=e.get("total");}});Ext.get("totalCharges").update(roundDec(a,2)+" €");}},reloadCharges:function(f,d,c){var b=(f===false?Ext.getCmp("chargesWhenBegin").getValue().format("U"):f);var e=(d===false?Ext.getCmp("chargesWhenEnd").getValue().format("U"):d)+24*3600;var a=(c===false?Ext.getCmp("chargesWithMarked").getValue():c);this.load({params:{start:b,stop:e,withMarked:a}});}});innoAgenda.Charges.processRow=function(c){var b=innoAgenda.Charges.grid.selectedRecord;if(b.get("type")!="REAL"){if(c.dataIndex=="quantity"){b.set("total",c.getValue()*b.get("coeff")+b.get("constant"));}else{if(c.dataIndex=="coeff"){b.set("total",b.get("quantity")*c.getValue()+b.get("constant"));}else{if(c.dataIndex=="constant"){b.set("total",b.get("quantity")*b.get("coeff")+c.getValue());}}}}else{if(c.dataIndex=="total"){b.set("total",c.getValue());}}var a=0;innoAgenda.Charges.gridDataStore.each(function(d){if(d.get("selected")){a+=d.get("total");}});Ext.get("totalCharges").update(roundDec(a,2)+" €");innoAgenda.Charges.validate(b);};innoAgenda.Charges.totalPanel=new Ext.Panel({border:false,frame:false,layout:"fit",region:"south",height:20,bodyStyle:{"background-color":"#FFFFFF","border-color":"#FFFFFF"},items:[{layout:"fit",xtype:"label",region:"center",html:'<b style="font-size: 12px; padding-left: 5px">Total : <span id="totalCharges">0 €</span></b>'}]});innoAgenda.Charges.showMarkedCombo=new Ext.data.SimpleStore({fields:["index","text"],data:[[0,"Frais non-clôturés seulement"],[1,"Frais cloturés seulement"],[2,"Tous les frais"]]});innoAgenda.Charges.selectWhen=new Ext.Panel({frame:false,loadMask:true,title:"Intervalle de temps",layout:"absolute",region:"north",height:70,bodyStyle:"padding: 5px;",items:[{x:10,y:15,xtype:"label",html:"<b>Du</b>"},{x:50,y:10,xtype:"datefield",emptyText:"Date de début",width:120,format:"d/m/Y",allowBlank:false,id:"chargesWhenBegin",value:innoAgenda.Charges.findValidDate("month",true),oldValue:innoAgenda.Charges.findValidDate("month",true).format("U"),listeners:{valid:function(b){var a=b.getValue().format("U");if(a!=b.oldValue){innoAgenda.Charges.gridDataStore.reloadCharges(a,false,false);b.oldValue=a;}}}},{x:190,y:15,xtype:"label",html:"<b>au</b>"},{x:230,y:10,xtype:"datefield",emptyText:"Date de fin",width:120,format:"d/m/Y",allowBlank:false,id:"chargesWhenEnd",value:innoAgenda.Charges.findValidDate("month",false),oldValue:innoAgenda.Charges.findValidDate("month",false).format("U"),listeners:{valid:function(b){var a=b.getValue().format("U");if(a!=b.oldValue){innoAgenda.Charges.gridDataStore.reloadCharges(false,a,false);b.oldValue=a;}}}},{xtype:"label",checked:false,x:400,y:15,html:"<b>Afficher</b>"},{xtype:"combo",id:"chargesWithMarked",x:475,y:10,width:200,typeAhead:true,triggerAction:"all",forceSelection:true,lazyRender:true,mode:"local",displayField:"text",valueField:"index",editable:false,store:innoAgenda.Charges.showMarkedCombo,listClass:"x-combo-list-small",listeners:{select:function(c,a,b){innoAgenda.Charges.gridDataStore.reloadCharges(false,false,a.get("index"));}}}]});innoAgenda.Charges.areSelected=new Ext.grid.CheckColumn({header:'<div class="x-grid3-hd-checker">&#160;</div>',dataIndex:"selected",width:30,sortable:false,menuDisabled:true,handler:function(b){var a=0;innoAgenda.Charges.gridDataStore.each(function(c){if(c.get("selected")){a+=c.get("total");}});Ext.get("totalCharges").update(roundDec(a,2)+" €");},handlerHeaderChecked:function(){innoAgenda.Charges.gridDataStore.each(function(a){a.set("selected",true);});},handlerHeaderUnchecked:function(){innoAgenda.Charges.gridDataStore.each(function(a){a.set("selected",false);});}});innoAgenda.Charges.grid=new Ext.grid.EditorGridPanel({viewConfig:{autoFill:true,emptyText:"Aucun frais saisi. (La saisie s'effectue dans l'onglet Frais de la création d'événements.)"},plugins:innoAgenda.Charges.areSelected,cm:new Ext.grid.ColumnModel([innoAgenda.Charges.areSelected,{dataIndex:"chargetypeName",header:"Type de frais",width:300,sortable:true,renderer:function(d,e,a){var c=innoAgenda.Charges.createTooltip(a);var b='<img ext:qclass="chargeTooltip" ext:qtip="'+c+'" style="vertical-align: middle; width: 16px; height: 16px;" qwidth="300" src="img/icons/information.png"/>&nbsp;&nbsp;';if(a.get("marked")){b+="<font style='font-weight: bold; color: green;'>"+d+"</font>";}else{b+=d;}return b;}},{header:"Date",dataIndex:"date",width:80,sortable:true,renderer:function(b,c,a){if(a.get("marked")){return"<font style='font-weight: bold; color: green;'>"+Ext.util.Format.date(b,"d/m/Y")+"</font>";}else{return Ext.util.Format.date(b,"d/m/Y");}}},{header:"Qté",dataIndex:"quantity",width:80,sortable:true,renderer:function(b,c,a){if(a.get("type")=="KM"){b+=" km";}if(a.get("marked")){return"<font style='font-weight: bold; color: green;'>"+b+"</font>";}else{return b;}},editor:new Ext.form.NumberField({allowDecimal:true,decimalPrecision:5,allowBlank:false,allowNegative:false,dataIndex:"quantity",validateOnBlur:false,listeners:{valid:innoAgenda.Charges.processRow}})},{header:"Coefficient",dataIndex:"coeff",width:80,sortable:true,renderer:function(b,c,a){if(a.data.type=="REAL"){return"<font color='#909090'>N.A.</font>";}else{if(a.get("marked")){return"<font style='font-weight: bold; color: green;'>"+b+"</font>";}else{return b;}}},editor:new Ext.form.NumberField({allowDecimal:true,decimalPrecision:5,allowBlank:false,allowNegative:false,dataIndex:"coeff",validateOnBlur:false,listeners:{valid:innoAgenda.Charges.processRow}})},{header:"Constante",dataIndex:"constant",width:80,sortable:true,renderer:function(b,c,a){if(a.data.type=="REAL"){return"<font color='#909090'>N.A.</font>";}else{if(a.get("marked")){return"<font style='font-weight: bold; color: green;'>"+b+"</font>";}else{return b;}}},editor:new Ext.form.NumberField({allowDecimal:true,decimalPrecision:5,allowBlank:false,allowNegative:false,dataIndex:"constant",validateOnBlur:false,listeners:{valid:innoAgenda.Charges.processRow}})},{header:"Total",dataIndex:"total",width:80,sortable:true,renderer:function(d,e,a){d=roundDec(d);var c=a.get("selected");if(a.data.type=="FIXED"||a.data.type=="KM"){return"<font "+(c?"":"style='text-decoration: line-through;' ")+"color='#909090'>"+d+" €</font>";}else{var b="";if(!c){b+="text-decoration: line-through;";}if(a.get("marked")){b+="font-weight: bold; color: green;";}if(b){return"<font style='"+b+"'>"+d+" €</font>";}else{return d+" €";}}},editor:new Ext.form.NumberField({allowDecimal:true,decimalPrecision:5,allowBlank:false,allowNegative:false,dataIndex:"total",validateOnBlur:false,listeners:{valid:innoAgenda.Charges.processRow}})}]),sm:new Ext.grid.CellSelectionModel(),clicksToEdit:1,frame:false,loadMask:true,border:false,store:innoAgenda.Charges.gridDataStore,title:"Frais à valider",region:"center",layout:"fit",selectedRecord:false,listeners:{beforeedit:function(a){if(a.record.get("type")=="REAL"){if(a.field=="coeff"||a.field=="constant"){return false;}}else{if(a.record.get("type")=="FIXED"||a.record.get("type")=="KM"){if(a.field=="total"){return false;}}}innoAgenda.Charges.grid.selectedRecord=a.record;return true;}}});innoAgenda.Charges.validate=function(a){var b={id:a.get("dbId"),coeff:a.get("coeff"),quantity:a.get("quantity"),constant:a.get("constant"),total:a.get("total")};Ext.Ajax.request({url:IACV_SERVER_URL+"charges.php",params:{action:"setCharge",modifiedCharge:Ext.util.JSON.encode(b)},success:function(c){}});};innoAgenda.Windows.Charges=new Ext.Window({title:"Frais",id:"chargesWindow",width:750,height:480,layout:"border",maximizable:true,resizable:true,modal:true,iconCls:"newEventTabTitleCharges",closable:true,closeAction:"hide",firstShow:true,bbar:[{text:"Fermer",cls:"x-btn-text-icon",icon:"img/icons/cancel.png",handler:function(){innoAgenda.Windows.Charges.hide();}},"->",{text:"Clôturer",tooltip:"Marquer les frais sélectionnés comme clôturés",cls:"x-btn-text-icon",icon:"img/icons/calendar_add.png",handler:function(){var a=[];innoAgenda.Charges.gridDataStore.each(function(b){if(b.get("selected")){a.push(b.get("dbId"));}});Ext.Ajax.request({url:IACV_SERVER_URL+"charges.php",success:function(b){b=Ext.util.JSON.decode(b.responseText);if(b.success){innoAgenda.Charges.gridDataStore.reloadCharges(false,false,false);}else{Ext.Msg.alert("Erreur","Suite à un problème de connexion, la clôture des frais n'a pas été prise en compte");}},failure:function(b){Ext.Msg.alert("Erreur","Suite à un problème de connexion, la clôture des frais n'a pas été prise en compte");},params:{action:"setMarked",charges:Ext.util.JSON.encode(a),areMarked:1}});}},{text:"Déclôturer",tooltip:"Marquer les frais sélectionnés comme non clôturés",cls:"x-btn-text-icon",icon:"img/icons/calendar_delete.png",handler:function(){var a=[];innoAgenda.Charges.gridDataStore.each(function(b){if(b.get("selected")){a.push(b.get("dbId"));}});Ext.Ajax.request({url:IACV_SERVER_URL+"charges.php",success:function(b){b=Ext.util.JSON.decode(b.responseText);if(b.success){innoAgenda.Charges.gridDataStore.reloadCharges(false,false,false);}else{Ext.Msg.alert("Erreur","Suite à un problème de connexion, la clôture des frais n'a pas été prise en compte");}},failure:function(b){Ext.Msg.alert("Erreur","Suite à un problème de connexion, la clôture des frais n'a pas été prise en compte");},params:{action:"setMarked",charges:Ext.util.JSON.encode(a),areMarked:0}});}},{text:"Imprimer note de frais",cls:"x-btn-text-icon",icon:"img/icons/page_white_acrobat.png",handler:function(){innoAgenda.Windows.ChargesPopup.show();}}],items:[innoAgenda.Charges.selectWhen,innoAgenda.Charges.grid,innoAgenda.Charges.totalPanel],listeners:{show:function(a){Ext.getCmp("chargesWhenBegin").setValue(innoAgenda.Charges.findValidDate("month",true));Ext.getCmp("chargesWhenEnd").setValue(innoAgenda.Charges.findValidDate("month",false));Ext.getCmp("chargesWithMarked").setValue(0);innoAgenda.Charges.gridDataStore.reloadCharges(false,false,0);}}});innoAgenda.Windows.ChargesPopup=new Ext.Window({title:"Options de génération",id:"chargesPopupWindow",width:500,height:180,layout:"border",maximizable:true,resizable:false,modal:true,iconCls:"newEventTabTitleCharges",closable:true,closeAction:"hide",bbar:[{text:"Annuler",cls:"x-btn-text-icon",icon:"img/icons/cancel.png",handler:function(){innoAgenda.Windows.ChargesPopup.hide();}},"->",{text:"Valider",cls:"x-btn-text-icon",icon:"img/icons/accept.png",handler:function(){var a=[];var b=innoAgenda.Charges.gridDataStore.getSortState();innoAgenda.Charges.gridDataStore.sort("date","ASC");innoAgenda.Charges.gridDataStore.each(function(d){if(d.get("selected")){a.push(d.get("dbId"));}});var c=[];if(Ext.getCmp("genPopupRecapCheckbox").getValue()){c.push(0);}if(Ext.getCmp("genPopupEvtDetailCheckbox").getValue()){c.push(1);}if(Ext.getCmp("genPopupTypeDetailCheckbox").getValue()){c.push(2);}innoAgenda.Charges.gridDataStore.sort(b.field,b.direction);downloadFile(IACV_SERVER_URL+"charges.php",[{name:"action",value:"generatePdf"},{name:"idCharges",value:Ext.util.JSON.encode(a)},{name:"toPrint",value:Ext.util.JSON.encode(c)},{name:"date",value:Ext.getCmp("genPopupDate").getValue().format("U")},{name:"place",value:Ext.getCmp("genPopupPlace").getValue()},{name:"start",value:Ext.getCmp("chargesWhenBegin").getValue().format("U")},{name:"stop",value:Ext.getCmp("chargesWhenEnd").getValue().format("U")+3600*24}]);innoAgenda.Windows.ChargesPopup.hide();Ext.Msg.alert("Génération en cours...","Merci de patienter, la génération de la note de frais est en cours. Cela peut durer plusieurs secondes.");}}],items:[{xtype:"panel",region:"center",layout:"absolute",border:true,title:"Feuillets à imprimer",items:[{xtype:"checkbox",id:"genPopupRecapCheckbox",checked:true,x:10,y:5},{xtype:"label",x:30,y:10,text:"Récapitulatif"},{xtype:"checkbox",id:"genPopupEvtDetailCheckbox",checked:true,x:10,y:35},{xtype:"label",x:30,y:40,text:"Détail par événement"},{xtype:"checkbox",id:"genPopupTypeDetailCheckbox",checked:true,x:10,y:65},{xtype:"label",x:30,y:70,text:"Détail par type de frais"}]},{xtype:"panel",region:"east",layout:"absolute",width:320,border:true,title:"Informations",items:[{xtype:"label",x:15,y:10,text:"Fait à"},{xtype:"textfield",id:"genPopupPlace",width:260,y:5,x:50},{xtype:"label",x:15,y:40,text:"Le"},{x:50,y:35,xtype:"datefield",width:260,format:"d/m/Y",allowBlank:false,id:"genPopupDate"}]}],listeners:{show:function(a){Ext.getCmp("genPopupPlace").setValue(innoAgenda.Prefs[innoAgenda.User.id].admResidency);Ext.getCmp("genPopupDate").setValue(new Date());Ext.getCmp("genPopupRecapCheckbox").setValue(true);Ext.getCmp("genPopupEvtDetailCheckbox").setValue(true);Ext.getCmp("genPopupTypeDetailCheckbox").setValue(true);}}});innoAgenda.Windows.about=new Ext.Window({title:"A propos d'innoAgenda",width:450,height:270,shadowOffset:6,closable:true,closeAction:"hide",layout:"fit",buttonAlign:"center",modal:true,bodyStyle:"background-color: #FFF;padding: 5px;text-align: center;",html:'<div id="aboutWindow"><img src="img/innoAgenda.png" /><br/><a href="http://www.innoagenda.fr" target="blank">innoAgenda</a> est une solution logicielle développée par la société <a href="http://www.innovortex.fr" target="blank">innoVortex</a><br/>- <b>version '+INNOAGENDA_VERSION+" - 2009</b> -</div>",iconCls:"eventInfoWindow"});innoAgenda.Windows.newEventRecapUpdate=function(){var m=Ext.getCmp("newEventRecap");if(!m.body){return false;}var q=Ext.getCmp("eventPropertyDate").getValue();var p=Ext.getCmp("eventPropertyStart").getValue();var g=Ext.getCmp("eventPropertyStop").getValue();p=p.split(":");g=g.split(":");var w=q.add(Date.HOUR,p[0]).add(Date.MINUTE,p[1]);var n=(!(g[0]=="00"&&g[1]=="00"))?q.add(Date.HOUR,g[0]).add(Date.MINUTE,g[1]):q.add(Date.DAY,1);var k='<div class="eventRecapItem"><h1 style="background-image: url(img/icons/user.png)">Qui ?</h1>';if(Ext.getCmp("eventPropertyWho").lastSelectionText){k+="<div><b>"+Ext.getCmp("eventPropertyWho").lastSelectionText+"</b></div></div>";}else{k+='<div><p class="eventRecapError">Indéfini</p></div>';}k+='<div class="eventRecapItem"><h1 style="background-image: url(img/icons/date.png)">Quand ?</h1><div>';k+='<p id="eventRecapInvalidSlot" class="eventRecapOk">Créneau horaire disponible</p>';k+="Du "+w.format("d F Y à H:i")+"<br/>";k+="Au "+n.format("d F Y à H:i")+"";Ext.Ajax.request({url:IACV_SERVER_URL+"events.php",success:function(x){x=Ext.util.JSON.decode(x.responseText);if(x.success){Ext.get("eventRecapInvalidSlot").update("Créneau horaire disponible");Ext.get("eventRecapInvalidSlot").replaceClass("eventRecapError","eventRecapOk");}else{Ext.get("eventRecapInvalidSlot").update("Créneau horaire indisponible");Ext.get("eventRecapInvalidSlot").replaceClass("eventRecapOk","eventRecapError");}},failure:function(x){},params:{eventAction:"verifySlot",id:iacv.formSelectedId,owner:Ext.getCmp("eventPropertyWho").getValue(),ownerType:"user",start:w.format("U"),stop:n.format("U")}});k+="</div></div>";k+='<div class="eventRecapItem"><h1 style="background-image: url(img/icons/bricks.png)">Type</h1>';var b='<p class="eventRecapError">Indéfini</p>';if(Ext.getCmp("eventPropertyEventType").getValue()){b='<p class="eventRecapOk">'+Ext.getCmp("eventPropertyEventType").lastSelectionText+"</p>";}k+="<div>"+b;if(Ext.getCmp("eventPropertyEventPrivate").checked){k+='<p style="background-image: url(img/icons/lock.png)">Evenement privé</p>';}k+="</div></div>";k+='<div class="eventRecapItem"><h1 style="background-image: url(img/icons/map.png)">Contact</h1>';var o='<p class="eventRecapWarn">Indéfini</p>';var e=innoAgenda.Contact.combo;if(e.iaOk){var t=e.iaRecord.data;o="<b>"+t.name+"</b><br/>";o+=Ext.util.Format.nl2br(t.address)+"<br/>";o+=t.mail?(t.mail+"<br/>"):"";o+=t.phone?("Tél. "+t.phone+"<br/>"):"";o+=t.fax?("Fax "+t.fax+""):"";}else{if(e.getValue()){o="<b>"+e.getValue()+"</b><br/>";}}k+="<div>"+o;k+="</div></div>";var f="";var v=Ext.getCmp("eventPropertyWhere").getValue();var r=Ext.getCmp("eventPropertyWhereFromContact").getValue();if(r&&innoAgenda.Contact.combo.iaOk){f="<b><i>Adresse du contact</i></b>";}else{if(!r&&v!=""){f=v;}else{f='<p class="eventRecapWarn">Indéfini</p>';}}k+='<div class="eventRecapItem"><h1 style="background-image: url(img/icons/map.png)">Lieu</h1>';k+="<div>"+f;k+="</div></div>";k+='<div class="eventRecapItem"><h1 style="background-image: url(img/icons/images.png)">Ressources</h1><div>';var c="";innoAgenda.resourcesSelection.gridDataStore.each(function(x){c+='<p class="'+x.data.iconCls+'">'+x.data.name+"</p>";});if(innoAgenda.resourcesSelection.gridDataStore.getCount()==0){c='<p class="eventRecapWarn">Indéfini</p>';}k+=c+"</div></div>";k+='<div class="eventRecapItem"><h1 style="background-image: url(img/icons/control_repeat_blue.png)">Répétitions</h1><div>';var l=(repetitionRecap)?repetitionRecap:'<p class="eventRecapWarn">Aucune répétition</p>';k+=l+"</div></div>";var d='<p class="eventRecapWarn">Aucun fichier</p>';var s=innoAgenda.Windows.eventPropertiesPanel.fileStore.getCount();d=(s>0)?("<b>"+s+" fichier"+((s>1)?"s":"")+" joint"+((s>1)?"s":"")+"</b>"):d;k+='<div class="eventRecapItem"><h1 style="background-image: url(img/icons/page_link.png)">Fichiers</h1>';k+="<div>"+d;k+="</div></div>";k+='<div class="eventRecapItem"><h1 style="background-image: url(img/icons/information.png)">Titre</h1>';var u='<p class="eventRecapWarn">Indéfini</p>';if(Ext.getCmp("eventPropertyTitle").getValue()){u=Ext.getCmp("eventPropertyTitle").getValue();}k+="<div>"+u;k+="</div></div>";k+='<div class="eventRecapItem"><h1 style="background-image: url(img/icons/comment.png)">Commentaire</h1>';var a='<p class="eventRecapWarn">Indéfini</p>';if(Ext.getCmp("eventPropertyComment").getValue()){a=Ext.getCmp("eventPropertyComment").getValue();}k+="<div>"+a;k+="</div></div><br/>";m.body.update(k);};innoAgenda.Windows.eventPropertiesPanel.general=new Ext.FormPanel({url:IACV_SERVER_URL+"events.php",id:"eventPropertiesGeneralFormPanel",frame:true,region:"center",labelWidth:100,defaultType:"textfield",layout:"absolute",listeners:{change:innoAgenda.Windows.newEventRecapUpdate},items:[{xtype:"hidden",id:"eventAction",name:"eventAction",value:"create"},{x:5,y:5,xtype:"label",text:"Qui ?"},{x:70,y:0,xtype:"treecombobox",fieldLabel:"Qui ?",id:"eventPropertyWho",name:"eventPropertyWho",hiddenName:"eventPropertyWhoId",cls:"treeComboBoxEventUser",disabledClass:"disabledComboBox x-item-disabled",treeConfig:{autoScroll:true,animate:true,lines:true,containerScroll:true,loader:new Ext.tree.TreeLoader({baseParams:{type:"who",showOnlyGroups:true,fetchForWriting:true},dataUrl:IACV_SERVER_URL+"group.php"}),root:new Ext.tree.AsyncTreeNode({text:"Groupes",draggable:false,expanded:true,id:"base"}),rootVisible:false,listeners:{beforeClick:function(a){if(!a.isLeaf()||a.disabled){return false;}else{if(a.attributes.permission.writeCharge){innoAgenda.Windows.eventPropertiesPanel.charge.enable();}else{innoAgenda.Windows.eventPropertiesPanel.charge.disable();}}return true;}}},width:420,listeners:{change:innoAgenda.Windows.newEventRecapUpdate}},{x:5,y:80,xtype:"label",text:"Type"},{x:70,y:75,xtype:"treecombobox",fieldLabel:"Type",cls:"treeComboBoxEventType",invalidClass:"treeComboBoxEventTypeInvalid",treeConfig:{autoScroll:true,animate:true,lines:true,containerScroll:true,loader:new Ext.tree.TreeLoader({baseParams:{type:"eventType"},dataUrl:IACV_SERVER_URL+"group.php"}),root:new Ext.tree.AsyncTreeNode({text:"Groupes",draggable:false,expanded:true,id:"base"}),rootVisible:false},emptyText:"Choisissez le type de cet événement",id:"eventPropertyEventType",name:"eventPropertyEventType",hiddenName:"eventPropertyEventTypeId",width:320,listeners:{change:innoAgenda.Windows.newEventRecapUpdate,expand:function(a){a.validate();}}},{x:398,y:75,id:"eventPropertyEventPrivate",xtype:"checkbox",listeners:{check:innoAgenda.Windows.newEventRecapUpdate}},{x:415,y:80,xtype:"label",text:"Privé"},{x:5,y:30,xtype:"label",text:"Quand ?"},{x:70,y:30,xtype:"label",text:"le"},{x:85,y:25,xtype:"datefield",width:100,format:"d/m/Y",id:"eventPropertyDate",allowBlank:false,selectOnFocus:true,style:"text-align: center",listeners:{change:function(){innoAgenda.Windows.newEventRecapUpdate();}}},{x:290,y:30,xtype:"label",text:"de"},{x:310,y:25,xtype:"timefield",width:80,id:"eventPropertyStart",format:"H:i",allowBlank:false,forceSelection:true,editable:false,style:"text-align: center",listeners:{collapse:function(){var g=Ext.getCmp("eventPropertyStart");var c=Ext.getCmp("eventPropertyStop");var a=g.getValue();var e=c.getValue();a=a.split(":");var d=parseInt(a[0],10)*60+parseInt(a[1],10);e=e.split(":");var b=parseInt(e[0],10)*60+parseInt(e[1],10);if(b!=0&&d>b-15){b=d+15;var f=Math.floor(b/60)+":"+(((b%60)>10)?(b%60):"0"+(b%60));c.setValue(f);}innoAgenda.Windows.newEventRecapUpdate();}}},{x:400,y:30,xtype:"label",text:"à"},{x:410,y:25,xtype:"timefield",width:80,id:"eventPropertyStop",format:"H:i",allowBlank:false,forceSelection:true,editable:false,style:"text-align: center",minValue:"00:15",maxValue:"24:00",listeners:{render:function(){Ext.getCmp("eventPropertyStop").minValue=Date.parseDate("0:00","H:i");},beforeselect:function(){Ext.getCmp("eventPropertyStop").minValue=Date.parseDate("0:00","H:i");},collapse:function(){var g=Ext.getCmp("eventPropertyStart");var c=Ext.getCmp("eventPropertyStop");var a=g.getValue();var e=c.getValue();a=a.split(":");var d=parseInt(a[0],10)*60+parseInt(a[1],10);e=e.split(":");var b=parseInt(e[0],10)*60+parseInt(e[1],10);if(b!=0&&d>b-15){d=b-15;var f=Math.floor(d/60)+":"+(((d%60)>10)?(d%60):"0"+(d%60));g.setValue(f);}innoAgenda.Windows.newEventRecapUpdate();}}},{x:5,y:105,xtype:"label",text:"Contact"},{x:70,y:125,xtype:"textarea",id:"eventPropertyWhere",name:"eventPropertyWhere",height:50,enableFont:false,enableFontSize:false,enableSourceEdit:false,enableAlignments:false,width:320,listeners:{blur:function(a){innoAgenda.Windows.newEventRecapUpdate();}}},{x:398,y:125,id:"eventPropertyWhereFromContact",xtype:"checkbox",disabled:true,checked:true,listeners:{check:function(c,b){innoAgenda.Windows.newEventRecapUpdate();if(b){var a=innoAgenda.Contact.combo.iaRecord?innoAgenda.Contact.combo.iaRecord.data.address:"";Ext.getCmp("eventPropertyWhere").disable();Ext.getCmp("eventPropertyWhere").setValue(a);}else{Ext.getCmp("eventPropertyWhere").enable();}}}},{x:415,y:130,xtype:"label",disabled:true,html:"Adresse<br/>du contact",id:"eventPropertyWhereFromContactLabel"},{x:5,y:130,xtype:"label",text:"Lieu"},innoAgenda.Contact.combo,{x:5,y:210,xtype:"label",text:"Titre"},{x:70,y:205,xtype:"textfield",layout:"fit",id:"eventPropertyTitle",name:"eventPropertyTitle",width:420,emptyText:"Nouvel événement",listeners:{change:innoAgenda.Windows.newEventRecapUpdate},selectOnFocus:true},{x:5,y:235,xtype:"label",text:"Observation"},{x:70,y:230,xtype:"htmleditor",id:"eventPropertyComment",name:"eventPropertyComment",fieldLabel:"Commentaire",height:Ext.isIE?120:140,enableFont:false,enableFontSize:false,enableSourceEdit:false,enableAlignments:false,width:420,listeners:{blur:function(a){innoAgenda.Windows.newEventRecapUpdate();}}}],buttons:[]});innoAgenda.Windows.eventPropertiesPanel.resource=new Ext.Panel({id:"eventPropertiesResourceFormPanel",title:"Ressources",iconCls:"newEventTabTitleResources",layout:"fit",items:[innoAgenda.resourcesSelection.displayPanel],bodyStyle:"background-color: #FFF;",firstShow:true,listeners:{afterlayout:function(a){if(a.firstShow){innoAgenda.resourcesSelection.displayPanel.refresh();a.firstShow=false;}},show:function(a){if(!a.firstShow){innoAgenda.resourcesSelection.displayPanel.refresh();}}}});innoAgenda.Windows.eventPropertiesPanel.holidays=new Ext.FormPanel({disabled:true,title:"Congès/RTT",iconCls:"newEventTabTitleHolidays",html:"holidays!"});innoAgenda.Windows.eventPropertiesFileUpload=new Ext.Window({title:"Ajout d'un fichier",id:"eventPropertiesFileUpload",width:400,height:100,layout:"fit",modal:true,iconCls:"newEventTabTitleFiles",closable:true,closeAction:"hide",frame:true,items:[{xtype:"form",id:"eventPropertiesFileUploadForm",border:false,labelWidth:60,defaults:{anchor:"95%",allowBlank:false,msgTarget:"side"},bodyStyle:"padding: 10px 5px 5px 10px;",fileUpload:true,items:[{xtype:"fileuploadfield",id:"form-file",emptyText:"Cliquez sur le bouton pour sélectionner un fichier",fieldLabel:"Fichier",name:"attachment",buttonCfg:{text:"",iconCls:"eventFileUploadAdd"}}]}],bbar:["->",{text:"Annuler",tooltip:"Annuler",cls:"x-btn-text-icon",icon:"img/icons/cancel.png",handler:function(){innoAgenda.Windows.eventPropertiesFileUpload.hide();}},{text:"Charger le fichier",tooltip:"Ajouter un fichier provenant de votre disque dur",cls:"x-btn-text-icon",icon:"img/icons/page_go.png",handler:function(){fp=Ext.getCmp("eventPropertiesFileUploadForm");if(fp.getForm().isValid()){fp.getForm().submit({url:IACV_SERVER_URL+"file.php",waitTitle:"Chargement en cours",waitMsg:"Chargement de votre fichier...",success:function(c,d){innoAgenda.Windows.eventPropertiesFileUpload.hide();var b=Ext.util.JSON.decode(d.response.responseText);var a=new innoAgenda.Windows.eventPropertiesPanel.fileStoreRecord(b.file);b.file.date=Date.parseDate(b.file.date,"U");innoAgenda.Windows.eventPropertiesPanel.fileStore.add(a);},failure:function(c,a,b){innoAgenda.Windows.eventPropertiesFileUpload.hide();Ext.Msg.show({title:"Erreur de chargement",buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR,msg:"Une erreur est survenue lors du chargement du fichier."});}});}}}],listeners:{hide:function(a){Ext.getCmp("eventPropertiesFileUploadForm").getForm().reset();}}});innoAgenda.Windows.eventPropertiesPanel.fileStoreRecord=Ext.data.Record.create([{name:"id"},{name:"name"},{name:"size"},{name:"type"},{name:"date",type:"date",dateFormat:"U"},{name:"user"},{name:"uploadDate",type:"date",dateFormat:"U"},{name:"md5"}]);innoAgenda.Windows.eventPropertiesPanel.fileStore=new Ext.data.SimpleStore({fields:[{name:"id"},{name:"name"},{name:"size"},{name:"type"},{name:"date",type:"date",dateFormat:"U"},{name:"user"},{name:"md5"}],data:[]});innoAgenda.fileType=function(a){switch(a){case"application/pdf":a="Document Adobe PDF";break;case"image/jpeg":a="Image JPEG";break;case"image/png":a="Image PNG";break;case"image/gif":a="Image GIF";break;case"image/svg+xml":a="Dessin vectoriel SVG";break;case"text/plain":a="Fichier texte";break;case"text/html":a="Fichier HTML";break;case"application/octet-stream":a="Fichier binaire";break;default:a="Type inconnu ("+a+")";}return a;};innoAgenda.Windows.eventPropertiesPanel.file=new Ext.Panel({title:"Fichier(s)",iconCls:"newEventTabTitleFiles",layout:"border",items:[{xtype:"grid",region:"center",id:"eventPropertiesFileUploadGrid",store:innoAgenda.Windows.eventPropertiesPanel.fileStore,columns:[{id:"name",header:"Nom du fichier",width:200,renderer:function(a){return"<b>"+a+"</b>";},sortable:true,dataIndex:"name"},{id:"size",header:"Taille",width:75,renderer:Ext.util.Format.fileSize,sortable:true,dataIndex:"size"},{id:"type",header:"Type",width:150,sortable:true,renderer:innoAgenda.fileType,dataIndex:"type"},{id:"date",header:"Date de modification",renderer:Ext.util.Format.dateRenderer("l d F Y H:i"),sortable:true,dataIndex:"date"},{id:"user",header:"Utilisateur",hidden:true,sortable:true,dataIndex:"type"},{id:"md5",header:"Somme MD5",sortable:true,dataIndex:"md5",hidden:true}],stripeRows:true,autoExpandColumn:"name",title:"Fichier(s) joint(s) à l'événement",viewConfig:{forceFit:true,emptyText:"Aucun fichier."},bbar:["->",{text:"Ajouter un fichier",tooltip:"Ajouter un fichier provenant de votre disque dur",iconCls:"addFile",id:"eventFileAdd",disabled:true,handler:function(){innoAgenda.Windows.eventPropertiesFileUpload.show();}},{text:"Supprimer le fichier",tooltip:"Supprimer le fichier sélectionné",iconCls:"removeFile",id:"eventFileRemove",disabled:true,handler:function(){Ext.Msg.confirm("Suppression de fichier","Voulez-vous vraiment supprimer ce fichier ?",function(b){if(b=="yes"){var a=Ext.getCmp("eventPropertiesFileUploadGrid");var c=a.selModel.getSelected();if(!c){return false;}else{Ext.Ajax.request({url:IACV_SERVER_URL+"file.php",success:function(d){d=Ext.util.JSON.decode(d.responseText);if(d.success){innoAgenda.Windows.eventPropertiesPanel.fileStore.remove(c);}},failure:function(d){},params:{action:"remove",id:c.data.id}});return c;}}else{return false;}});}}]}],listeners:{afterlayout:function(){if(innoAgenda.Permissions[innoAgenda.User.id].attachFiles){Ext.getCmp("eventFileAdd").enable();Ext.getCmp("eventFileRemove").enable();}else{Ext.getCmp("eventFileAdd").setIconClass("strokeIcon");Ext.getCmp("eventFileRemove").setIconClass("strokeIcon");iacv.tooltip=new Ext.ToolTip({target:Ext.getCmp("eventFileAdd").getEl(),width:200,showDelay:0,dismissDelay:0,html:"Vous n'avez pas souscrit à cette fonctionnalité, merci de contacter l'administrateur de votre agenda...",trackMouse:false});iacv.tooltip=new Ext.ToolTip({target:Ext.getCmp("eventFileRemove").getEl(),width:200,showDelay:0,dismissDelay:0,html:"Vous n'avez pas souscrit à cette fonctionnalité, merci de contacter l'administrateur de votre agenda...",trackMouse:false});}var a=new Ext.util.DelayedTask(function(){Ext.getCmp("eventPropertiesFileUploadGrid").getView().refresh();});a.delay(500);}}});innoAgenda.Windows.eventPropertiesButton.add=new Ext.Toolbar.Button({text:"Ajouter l'événement",id:"eventPropertyGeneralAddBtn",cls:"x-btn-text-icon",icon:"img/icons/add.png",handler:function(){iacv.onEventPropertySubmit();}});innoAgenda.Windows.eventPropertiesButton.edit=new Ext.Toolbar.Button({xtype:"tbbutton",text:"Valider les modifications",id:"eventPropertyGeneralModifyBtn",cls:"x-btn-text-icon",icon:"img/icons/date_edit.png",hidden:true,handler:function(){iacv.onEventPropertySubmit();}});innoAgenda.Windows.eventPropertiesButton.del=new Ext.Toolbar.Button({xtype:"tbbutton",text:"Supprimer l'événement",id:"eventPropertyGeneralDeleteBtn",cls:"x-btn-text-icon",icon:"img/icons/date_delete.png",hidden:true,handler:function(){iacv.deleteEvent(false);innoAgenda.Windows.eventProperties.hide();}});innoAgenda.Windows.reservationPropertiesButton.add=new Ext.Toolbar.Button({text:"Ajouter la réservation",id:"reservationPropertyGeneralAddBtn",cls:"x-btn-text-icon",icon:"img/icons/image_add.png",handler:function(){iacv.onReservationPropertySubmit();}});innoAgenda.Windows.reservationPropertiesButton.edit=new Ext.Toolbar.Button({xtype:"tbbutton",text:"Valider les modifications",id:"reservationPropertyGeneralModifyBtn",cls:"x-btn-text-icon",icon:"img/icons/image_edit.png",hidden:true,handler:function(){iacv.onReservationPropertySubmit();}});innoAgenda.Windows.reservationPropertiesButton.del=new Ext.Toolbar.Button({xtype:"tbbutton",text:"Supprimer la réservation",id:"reservationPropertyGeneralDeleteBtn",cls:"x-btn-text-icon",icon:"img/icons/image_delete.png",hidden:true,handler:function(){iacv.deleteEvent(true);innoAgenda.Windows.eventProperties.hide();}});innoAgenda.Windows.eventPropertiesButton.cancel=new Ext.Toolbar.Button({xtype:"tbbutton",icon:"img/icons/cancel.png",text:"Annuler",id:"eventPropertyGeneralCancelBtn",cls:"x-btn-text-icon",handler:function(){innoAgenda.Windows.eventProperties.hide();}});innoAgenda.Windows.eventProperties=new Ext.Window({title:"Propriétés de l'événement",id:"eventProperties",width:750,height:480,minWidth:750,minHeight:480,shadowOffset:6,layout:"border",buttonAlign:"center",maximizable:true,modal:true,iconCls:"newEventTitle",closable:true,closeAction:"hide",bbar:[innoAgenda.Windows.eventPropertiesButton.cancel,"->",innoAgenda.Windows.eventPropertiesButton.add,innoAgenda.Windows.eventPropertiesButton.edit,innoAgenda.Windows.eventPropertiesButton.del,innoAgenda.Windows.reservationPropertiesButton.add,innoAgenda.Windows.reservationPropertiesButton.edit,innoAgenda.Windows.reservationPropertiesButton.del],items:[{xtype:"tabpanel",border:false,region:"center",autoTabs:true,activeTab:0,enableTabScroll:true,bodyStyle:"padding: 2px;",id:"eventPropertyTabs",defaults:{hideMode:"offsets"},items:[{title:"Général",iconCls:"newEventTabTitleGeneral",layout:"border",items:[innoAgenda.Windows.eventPropertiesPanel.general,{xtype:"panel",region:"east",title:"Récapitulatif",iconCls:"newEventRecap",id:"newEventRecap",width:220,minWidth:220,maxWidth:300,split:true,autoScroll:true,listeners:{render:innoAgenda.Windows.newEventRecapUpdate}}]},innoAgenda.Windows.eventPropertiesPanel.resource,innoAgenda.Windows.eventPropertiesPanel.repetition,innoAgenda.Windows.EventAlert.displayPanel,innoAgenda.Windows.eventPropertiesPanel.file,innoAgenda.Windows.eventPropertiesPanel.charge],listeners:{tabchange:function(b,a){if(a.id==innoAgenda.Windows.EventAlert.displayPanel.id){a.doLayout();}if(a.id==innoAgenda.Windows.eventPropertiesPanel.charge.id){a.doLayout();}innoAgenda.Windows.newEventRecapUpdate();innoAgenda.Windows.EventAlert.initSms();innoAgenda.Windows.EventAlert.recapHTML();}}}],clean:function(a){if(a){innoAgenda.EventCharge.treeRoot.reload();}innoAgenda.EventCharge.gridDataStore.removeAll();},init:function(a,b){if(b){this.setIconClass("newReservationTitle");this.setTitle("Propriétés de la réservation");}else{this.setIconClass("newEventTitle");this.setTitle("Propriétés de l'événement");}innoAgenda.Windows.eventProperties.restore();innoAgenda.Windows.eventProperties.setSize(750,480);innoAgenda.Windows.eventProperties.center();if(a&&innoAgenda.Permissions[a].writeCharge){innoAgenda.Windows.eventPropertiesPanel.charge.enable();}else{innoAgenda.Windows.eventPropertiesPanel.charge.disable();}},needClean:false,listeners:{hide:function(a){iacv.onEventPropertyCancel();this.clean(innoAgenda.EventCharge.tree.rendered);},show:function(){Ext.Ajax.request({url:IACV_SERVER_URL+"creditsms.php",success:function(a){var b=Ext.util.JSON.decode(a.responseText);innoAgenda.Windows.EventAlert.smsCredit=b.credit;}});}}});innoAgenda.Windows.eventNote=new Ext.Window({title:"Note de journée",id:"dayNotes",width:400,height:350,shadowOffset:6,layout:"fit",buttonAlign:"center",maximizable:true,modal:true,iconCls:"dayNote",closable:true,closeAction:"hide",border:false,bbar:["->",{xtype:"tbbutton",text:"Annuler",id:"dayNoteCancel",cls:"x-btn-text-icon",icon:"img/icons/cancel.png",handler:function(){Ext.getCmp("dayNotes").hide();Ext.getCmp("dayNoteContent").reset();}},{xtype:"tbbutton",text:"Valider",id:"dayNoteSave",cls:"x-btn-text-icon",icon:"img/icons/accept.png",handler:function(){iacv.dayNoteSave();}}],items:[{xtype:"htmleditor",id:"dayNoteContent",name:"dayNoteContent",enableFont:false,enableFontSize:false,enableSourceEdit:false,enableAlignments:false,border:false,listeners:{}}],listeners:{show:function(){}}});function showAddress(a){Ext.getCmp("my_map").geocoder.getLatLng(a,function(b){if(!b){alert(a+" not found");}else{Ext.getCmp("my_map").gmap.setCenter(b,13);var c=new GMarker(b);Ext.getCmp("my_map").gmap.addOverlay(c);c.openInfoWindowHtml(a);}});}innoAgenda.Windows.eventInfoGetDirection=function(){innoAgenda.Windows.eventInformations.show();var a=Ext.getCmp("my_map").gmap;var b=Ext.get("gmapDirections").dom;Ext.get("gmapDirections").update("");if(!directions){directions=new GDirections(a,b);GEvent.addListener(directions,"error",handleErrors);}var d=Ext.util.Format.stripTags(innoAgenda.Prefs[innoAgenda.User.id].startPlace);var c=innoAgenda.Windows.eventInfoDirectionsDirection.place;directions.load("from: "+d+" to: "+c);};function handleErrors(){if(directions.getStatus().code==G_GEO_UNKNOWN_ADDRESS){reason="Impossible de faire correspondre un lieu géographique avec l'adresse fournie.<br/>L'adresse est peut-être trop récente ou incorrecte.";}else{if(directions.getStatus().code==G_GEO_SERVER_ERROR){reason="Une erreur inconnue est survenue lors de la localisation ou le calcul d'itinéraire.";}else{if(directions.getStatus().code==G_GEO_MISSING_QUERY){reason="La requête semble vide.";}else{if(directions.getStatus().code==G_GEO_BAD_KEY){reason="Erreur de clé Google Maps.";}else{if(directions.getStatus().code==G_GEO_BAD_REQUEST){reason="Une erreur inconnue est survenue lors du calcul d'itinéraire.";}else{reason="Une erreur inconnue est survenue.";}}}}}Ext.get("gmapDirections").update('<div class="gmapError"><div class="gmapErrorTitle">Erreur Google Maps</div>'+reason+"</div>");}innoAgenda.Windows.eventInfoDirectionsParam=new Ext.Panel({region:"north",border:false,split:true,height:90,autoScroll:true,html:"Paramètres",bodyStyle:"padding: 2px;",id:"eventInfoDirectionsParam"});innoAgenda.Windows.eventInfoDirectionsMap=new Ext.ux.GMapPanel({region:"center",gmapType:"map",id:"my_map",minGeoAccuracy:1,border:false,mapConfOpts:["enableScrollWheelZoom","enableDoubleClickZoom","enableDragging"],mapControls:["GSmallMapControl","GMapTypeControl","NonExistantControl"],setCenter:{geoCodeAddr:"La Rochelle France"},listeners:{resize:function(a,b){Ext.ux.GMapPanel.superclass.onResize.call(this,a,b);if(typeof this.getMap()=="object"){this.gmap.checkResize();}}}});innoAgenda.Windows.eventInfoDirectionsDirection=new Ext.Panel({region:"east",border:false,split:true,width:370,autoScroll:true,html:'<div class="eventInfo"><div class="eventRecapItem"><h1 style="background-image: url(img/icons/map.png)">Itinéraire</h1><div id="gmapDirections" class="gmapDirections"></div></div>',id:"myMapDirection"});innoAgenda.Windows.eventInformationsBottomBar=new Ext.Toolbar({region:"south",items:["->",{text:"Fermer la fenêtre",formBind:true,handler:function(){Ext.getCmp("eventInformations").hide();},cls:"x-btn-text-icon",icon:"img/icons/cancel.png"}]});innoAgenda.Windows.eventInformations=new Ext.Window({title:"Récapitulatif de l'événement",id:"eventInformations",width:750,height:480,shadowOffset:6,layout:"fit",modal:true,buttonAlign:"center",maximizable:true,iconCls:"eventInfoWindow",closable:true,closeAction:"hide",items:[{xtype:"tabpanel",id:"eventInformationsTabs",border:false,autoTabs:true,activeTab:0,enableTabScroll:true,items:[{xtype:"panel",title:"Récapitulatif",iconCls:"newEventTabTitleGeneral",layout:"border",items:[{xtype:"panel",html:"",id:"eventInfoGeneral",bodyStyle:"padding: 2px;",border:false,region:"center",autoScroll:true},{xtype:"panel",layout:"border",border:false,region:"east",split:true,width:220,items:[{xtype:"panel",html:"",id:"eventInfoGeneralNote",bodyStyle:"padding: 2px;",border:false,region:"center",autoScroll:true},{xtype:"panel",html:"",id:"eventInfoGeneralComment",bodyStyle:"padding: 2px;",border:false,region:"south",split:true,height:180,autoScroll:true}]}]},{xtype:"panel",title:"Alertes",html:"",border:false,iconCls:"newEventTabTitleAlerts",bodyStyle:{padding:"2px","overflow-y":"auto"},id:"eventInfoAlerts"},{xtype:"panel",title:"Frais",html:"",border:false,iconCls:"newEventTabTitleCharges",bodyStyle:{padding:"2px","overflow-y":"auto"},id:"eventInfoCharges"},{xtype:"panel",title:"Itinéraire",layout:"border",border:false,iconCls:"gmapWindow",bodyStyle:"padding: 2px;",id:"eventInfoDirections",items:[innoAgenda.Windows.eventInfoDirectionsParam,innoAgenda.Windows.eventInfoDirectionsMap,innoAgenda.Windows.eventInfoDirectionsDirection]},{xtype:"panel",title:"Fichiers",html:"",border:false,iconCls:"newEventTabTitleFiles",bodyStyle:"padding: 2px;",id:"eventInfoFiles"}],listeners:{tabchange:function(a,b){if(b.id=="eventInfoDirections"){innoAgenda.Windows.eventInfoGetDirection();}}}}],bbar:["->",{text:"Fermer la fenêtre",formBind:true,handler:function(){Ext.getCmp("eventInformations").hide();},cls:"x-btn-text-icon",icon:"img/icons/cancel.png"}],listeners:{resize:function(a,b){if(typeof innoAgenda.Windows.eventInfoDirectionsMap.getMap()=="object"){innoAgenda.Windows.eventInfoDirectionsMap.gmap.checkResize();}}}});innoAgenda.PrefsCustomGroupTreeLoaderSource=new Ext.tree.TreeLoader({dataUrl:IACV_SERVER_URL+"group.php",baseParams:{type:"customGroupsSource"}});innoAgenda.PrefsCustomGroupTreeLoaderDest=new Ext.tree.TreeLoader({preloadChildren:true});innoAgenda.PrefsCustomGroupTreeRootSource=new Ext.tree.AsyncTreeNode({text:"Utilisateurs et ressources disponibles",draggable:false,id:"base",expanded:true,iconCls:"tree-room"});innoAgenda.PrefsCustomGroupTreeRootDest=new Ext.tree.AsyncTreeNode({text:"Mes vues personnalisées",draggable:false,id:"base",expanded:true,iconCls:"tree-group",allowChildren:true,children:[]});innoAgenda.PrefsCustomGroupTreeSource=new Ext.tree.TreePanel({animate:true,autoScroll:true,loader:innoAgenda.PrefsCustomGroupTreeLoaderSource,root:innoAgenda.PrefsCustomGroupTreeRootSource,enableDrag:true,containerScroll:true,id:"customgroupSource",region:"west",split:true,width:350,border:false,rootVisible:false});innoAgenda.PrefsCustomGroupTreeDest=new Ext.tree.TreePanel({animate:true,autoScroll:true,loader:innoAgenda.PrefsCustomGroupTreeLoaderDest,root:innoAgenda.PrefsCustomGroupTreeRootDest,enableDD:true,containerScroll:true,region:"center",border:false,tbar:[{text:"Supprimer la sélection",cls:"x-btn-text-icon",icon:"img/icons/delete.png",handler:function(){var a=innoAgenda.PrefsCustomGroupTreeDest.getSelectionModel().getSelectedNode();if(!a){return false;}var b=a.getDepth();switch(b){case 1:action="delete";id=a.attributes.dbId;type=0;pid=0;break;case 2:action="detach";id=a.attributes.dbId;type=a.attributes.type;pid=a.parentNode.attributes.dbId;break;default:return false;}Ext.Ajax.request({url:IACV_SERVER_URL+"customgroup.php",params:{id:id,type:type,pid:pid,action:action},success:function(d){var c=Ext.util.JSON.decode(d.responseText);if(c.success){a.remove();}},failure:function(c){}});}},"->",{text:"Ajouter une vue",cls:"x-btn-text-icon",icon:"img/icons/add.png",listeners:{click:function(b,c){var a="Nouvelle vue";Ext.Ajax.request({url:IACV_SERVER_URL+"customgroup.php",params:{name:a,action:"create"},success:function(f){var d=Ext.util.JSON.decode(f.responseText);if(d.success){var e=new Ext.tree.AsyncTreeNode({text:a,iconCls:"tree-group",dbId:d.customGroup.id,children:[],expanded:true});innoAgenda.PrefsCustomGroupTreeRootDest.appendChild(e);}},failure:function(d){}});}}}],listeners:{beforenodedrop:function(a){parentNode=a.dropNode.parentNode;targetNode=a.target.parentNode;if(!targetNode){a.cancel=true;return false;}if(targetNode.attributes.id!=parentNode.attributes.id){a.dropNode.attributes.id="ddcustomgroup"+Math.round(Math.random()*100000);a.dropNode=a.tree.getLoader().createNode(a.dropNode.attributes);}if(a.target.attributes.id=="base"||parentNode.attributes.id=="base"){a.cancel=true;return false;}if(a.target.parentNode.attributes.id!="base"){target=a.target.parentNode;}else{target=a.target;}if(targetNode.attributes.id!=parentNode.attributes.id){target.eachChild(function(b){if(a.dropNode.attributes.dbId==b.attributes.dbId){a.cancel=true;}});}},nodedragover:function(b){parentNode=b.dropNode.parentNode;targetNode=b.target.parentNode;if(b.target.getDepth()<=1&&b.point!="append"){b.cancel=true;return false;}if(!targetNode){b.cancel=true;return false;}var a=true;if(b.target.attributes.id=="base"||parentNode.attributes.id=="base"){b.cancel=true;return false;}if(b.target.parentNode.attributes.id!="base"){target=b.target.parentNode;}else{target=b.target;}if(targetNode.attributes.id!=parentNode.attributes.id){target.eachChild(function(c){if(b.dropNode.attributes.dbId==c.attributes.dbId){a=false;}});}return a;},nodedrop:function(g){var m=g.dropNode.attributes.dbId;var a=g.dropNode.attributes.id;var c=(g.target.parentNode.attributes.id=="base")?g.target.attributes.dbId:g.target.parentNode.attributes.dbId;var l=g.dropNode.attributes.type;var d=g.dropNode.parentNode;var k=g.target.parentNode;var b="addmember";if(g.source.tree.id!="customgroupSource"&&k.attributes.id==d.attributes.id){b="reorder";}var f=d.indexOf(g.dropNode);Ext.Ajax.request({url:IACV_SERVER_URL+"customgroup.php",params:{id:c,mid:m,nid:a,type:l,action:b,order:f},success:function(n){var e=Ext.util.JSON.decode(n.responseText);if(e.success){}else{innoAgenda.PrefsCustomGroupTreeRootDest.cascade(function(o){if(o.attributes.id==e.errors.param){o.remove();return false;}});}},failure:function(e){}});}}});innoAgenda.PrefsCustomGroupTreeDestEditor=new Ext.tree.TreeEditor(innoAgenda.PrefsCustomGroupTreeDest);innoAgenda.PrefsCustomGroupTreeDestEditor.on("beforestartedit",function(c,a,b){return(!c.editNode.isLeaf()&&c.editNode.id!="base");});innoAgenda.PrefsCustomGroupTreeDestEditor.on("beforecomplete",function(d,e,b){var c=e;var a=d.editNode.attributes.dbId;Ext.Ajax.request({url:IACV_SERVER_URL+"customgroup.php",params:{id:a,name:c,action:"rename"},success:function(f){var f=Ext.util.JSON.decode(f.responseText);if(f.success){}},failure:function(f){}});});innoAgenda.PrefsCustomGroupLoaded=false;innoAgenda.Windows.CustomGroupLoad=function(){if(innoAgenda.PrefsCustomGroupLoaded){return false;}innoAgenda.PrefsCustomGroupLoaded=true;Ext.Ajax.request({url:IACV_SERVER_URL+"customgroup.php",params:{action:"list"},success:function(f){var a=Ext.util.JSON.decode(f.responseText);if(a.success){for(var c=0;c<a.groups.length;c++){var e=a.groups[c];var d=new Ext.tree.AsyncTreeNode({text:e.name,iconCls:"tree-group",dbId:e.id,children:[],expanded:true});innoAgenda.PrefsCustomGroupTreeRootDest.appendChild(d);for(var b=0;b<e.users.length;b++){children=new Ext.tree.AsyncTreeNode({text:e.users[b].name,iconCls:e.users[b].iconCls,leaf:true,dbId:e.users[b].id,type:e.users[b].type});d.appendChild(children);}}innoAgenda.PrefsCustomGroupTreeRootDest.expand();}},failure:function(a){}});return true;};innoAgenda.Windows.CustomGroupWindow=new Ext.Window({layout:"border",width:750,height:480,resizable:false,title:"Vues personnalisées",modal:true,closeAction:"hide",plain:true,id:"prefsCustomGroups",iconCls:"prefsCustomGroups",items:[innoAgenda.PrefsCustomGroupTreeSource,innoAgenda.PrefsCustomGroupTreeDest]});function stringToTime(a){return 60*parseInt(a.substr(0,2),10)+parseInt(a.substr(3,2),10);}function getNextTime(a){var b=stringToTime(a)+15;return new Date(2010,1,1,Math.floor(b/60),b%60,0).format("H:i");}function isValidSlot(c,a){var d=stringToTime(c);var b=stringToTime(a);return d<b;}function getSlots(){var c=Ext.getCmp("activeSlots").getStore();var d=new Array();for(var b=0;b<c.getCount();++b){var a=c.getAt(b);d.push({begin:a.get("begin"),end:a.get("end")});}return d;}function isSlotAvailable(c,e,d){var g=getSlots();var a=stringToTime(c);var k=stringToTime(e);for(var f=0;f<g.length;++f){if(typeof(d)!="undefined"&&f==d){continue;}var b=stringToTime(g[f].begin);var l=stringToTime(g[f].end);if((a<=b&&k>=b)||(a>=b&&k<=l)||(a>=b&&k<=l)){return false;}}return true;}function getNextSlot(){var e=getSlots();var g=8*60;for(var c=0;c<e.length;++c){var b=stringToTime(e[c].end);if(b>g){g=b;}}var f=(g%60==0)?Math.floor(g/60):Math.floor(g/60)+1;if(f>23){return false;}var d=new Date(2010,1,1,f,0,0).format("H:i");var a=new Date(2010,1,1,f,15,0).format("H:i");return{begin:d,end:a};}function loadPrefs(){var a=innoAgenda.UserPrefs;if(a.workingDays.indexOf(0)!=-1&&a.workingDays.indexOf(1)!=-1&&a.workingDays.indexOf(2)!=-1&&a.workingDays.indexOf(3)!=-1&&a.workingDays.indexOf(4)!=-1){Ext.getCmp("selectWorkingDay").setValue(1);}for(var b=0;b<7;++b){if(a.workingDays.indexOf(b)!=-1){Ext.getCmp("workingDay"+b).setValue(1);}}for(view in a.defaultView){if(a.defaultView[view]=="day"){Ext.getCmp("defaultViewDay").setValue(true);}if(a.defaultView[view]=="week"){Ext.getCmp("defaultViewWeek").setValue(true);}if(a.defaultView[view]=="month"){Ext.getCmp("defaultViewMonth").setValue(true);}if(a.defaultView[view]=="year"){Ext.getCmp("defaultViewYear").setValue(true);}if(a.defaultView[view]=="user"){Ext.getCmp("defaultViewUser").setValue(true);}if(a.defaultView[view]=="group"){Ext.getCmp("defaultViewGroup").setValue(true);}}}function validatePrefs(){var e=new Array();var b;for(var a=0;a<7;++a){if(Ext.getCmp("workingDay"+a).getValue()==1){e.push(a);b=true;}}if(!b){Ext.Msg.alert("Erreur","Merci de sélectionner au moins un jour à afficher");return false;}var d=new Array();var f,c;if(Ext.getCmp("defaultViewDay").getValue()){d.push("day");f=true;}if(Ext.getCmp("defaultViewWeek").getValue()){d.push("week");f=true;}if(Ext.getCmp("defaultViewMonth").getValue()){d.push("month");f=true;}if(Ext.getCmp("defaultViewYear").getValue()){d.push("year");f=true;}if(Ext.getCmp("defaultViewUser").getValue()){d.push("user");c=true;}if(Ext.getCmp("defaultViewGroup").getValue()){d.push("group");c=true;}if(!f||!c){Ext.msg.alert("Erreur","Merci de sélectionner une vue par défaut");return false;}Ext.Ajax.request({url:IACV_SERVER_URL+"prefs.php",params:{user:innoAgenda.User.id,action:"setMany",preference:Ext.util.JSON.encode({workingDays:e,defaultView:d})},success:function(g){if(Ext.util.JSON.decode(g.responseText).success){innoAgenda.Prefs[innoAgenda.User.id].workingDays=e;innoAgenda.Prefs[innoAgenda.User.id].defaultView=d;iacv.initView();}else{Ext.Msg.alert("Erreur","Suite à un problème de connexion, les préférences n'ont pas été sauvegardées");}},failure:function(g){Ext.Msg.alert("Erreur","Suite à un problème de connexion, les préférences n'ont pas été sauvegardées");}});return true;}innoAgenda.Windows.Prefs=new Ext.Window({title:"Préférences",width:750,height:480,resizable:false,iconCls:"prefsWindow",modal:true,closeAction:"hide",plain:true,layout:"fit",firstShow:true,clean:function(){Ext.getCmp("defaultViewDay").setValue(false);Ext.getCmp("defaultViewWeek").setValue(false);Ext.getCmp("defaultViewMonth").setValue(false);Ext.getCmp("defaultViewYear").setValue(false);Ext.getCmp("defaultViewUser").setValue(false);Ext.getCmp("defaultViewGroup").setValue(false);},listeners:{show:function(a){if(!this.firstShow){this.clean();}this.firstShow=false;loadPrefs();}},items:[{xtype:"tabpanel",border:false,autoTabs:true,activeTab:0,enableTabScroll:true,id:"prefTabs",items:[{xtype:"form",layout:"absolute",title:"Général",bodyStyle:"padding: 5px",iconCls:"prefsSchedule",id:"prefsSchedule",split:true,autoScroll:true,items:[{xtype:"fieldset",x:10,y:5,height:(Ext.isIE)?375:380,width:150,title:"Jour(s) affiché(s)",layout:"absolute",items:[{x:10,y:0,xtype:"checkboxgroup",itemCls:"x-check-group-alt",hideLabel:true,id:"workingDays",vertical:true,columns:[(Ext.isIE)?120:100],items:[{boxLabel:"<b>Jours ouvrés</b>",id:"selectWorkingDay",listeners:{check:function(b,a){if(a){for(i=0;i<7;i++){value=(i<5);Ext.getCmp("workingDay"+i).setValue(value);}}else{for(i=0;i<7;i++){Ext.getCmp("workingDay"+i).setValue(false);}}}}},{boxLabel:"Lundi",id:"workingDay0"},{boxLabel:"Mardi",id:"workingDay1"},{boxLabel:"Mercredi",id:"workingDay2"},{boxLabel:"Jeudi",id:"workingDay3"},{boxLabel:"Vendredi",id:"workingDay4"},{boxLabel:"Samedi",id:"workingDay5"},{boxLabel:"Dimanche",id:"workingDay6"}]}]},{xtype:"fieldset",id:"defaultView",x:170,y:5,height:(Ext.isIE)?375:380,width:550,title:"Vue par défaut",layout:"absolute",items:[{xtype:"panel",layout:"absolute",border:false,x:0,y:0,height:175,width:225,items:[{xtype:"label",html:"<b>Périodicité :</b>",x:0,y:5},{xtype:"radio",id:"defaultViewDay",name:"defaultViewPeriod",inputValue:0,x:10,y:25},{xtype:"label",text:"Journalière",x:30,y:30},{xtype:"radio",id:"defaultViewWeek",name:"defaultViewPeriod",inputValue:0,x:10,y:50},{xtype:"label",text:"Hebdomadaire",x:30,y:55},{xtype:"radio",id:"defaultViewMonth",name:"defaultViewPeriod",inputValue:0,x:10,y:75},{xtype:"label",text:"Mensuelle",x:30,y:80},{xtype:"radio",id:"defaultViewYear",name:"defaultViewPeriod",inputValue:0,x:10,y:100},{xtype:"label",text:"Annuelle",x:30,y:105}]},{xtype:"panel",layout:"absolute",x:225,y:0,height:175,width:225,border:false,items:[{xtype:"label",html:"<b>Pour :</b>",x:0,y:5},{xtype:"radio",id:"defaultViewUser",name:"defaultViewWho",inputValue:0,x:10,y:25},{xtype:"label",text:"Moi",x:30,y:30},{xtype:"radio",id:"defaultViewGroup",name:"defaultViewWho",inputValue:0,x:10,y:50,listeners:{check:function(b,a){if(a){if(Ext.getCmp("defaultViewYear").checked){Ext.getCmp("defaultViewYear").setValue(false);Ext.getCmp("defaultViewMonth").setValue(true);}Ext.getCmp("defaultViewYear").disable();}else{Ext.getCmp("defaultViewYear").enable();}}}},{xtype:"label",text:"Mon groupe",x:30,y:55}]}]}]}],bbar:["->",{xtype:"tbbutton",text:"Valider",cls:"x-btn-text-icon",icon:"img/icons/accept.png",handler:function(){if(validatePrefs()){innoAgenda.Windows.Prefs.hide();}}},{xtype:"tbbutton",text:"Annuler",cls:"x-btn-text-icon",icon:"img/icons/cancel.png",handler:function(){innoAgenda.Windows.Prefs.hide();}}]}]});var contactStoreMine=0;var contactStore=new Ext.data.JsonStore({root:"contacts",totalProperty:"count",id:"id",remoteSort:true,baseParams:{mine:false},fields:[{name:"name",mapping:"name"},{name:"id",mapping:"id"},{name:"mail",mapping:"mail"},{name:"phone",mapping:"phone"},{name:"mobile",mapping:"mobile"},{name:"fax",mapping:"fax"},{name:"address",mapping:"address"},{name:"cityZipCode",mapping:"cityZipCode"},{name:"cityName",mapping:"cityName"},{name:"owner",mapping:"owner"},{name:"ownerType",mapping:"ownerType"},{name:"organization"},{name:"orgFunction"},{name:"title"}],proxy:new Ext.data.HttpProxy({url:IACV_SERVER_URL+"contact.php"}),listeners:{beforeload:function(a,b){a.baseParams={mine:contactStoreMine,query:Ext.getCmp("prefsContactsFilter").getValue()};},load:function(){var a=contactGrid.getSelectionModel();if(a.getCount()<1){a.selectFirstRow();}}}});contactStore.setDefaultSort("name","asc");function renderTopic(d,e,b){var c="";var a=Ext.util.Format.nl2br(b.data.address);switch(b.get("title")){case"M":d="Mr "+d;break;case"MME":d="Mme "+d;break;case"MELLE":d="Melle "+d;break;}if(b.get("organization")){d+=" ("+b.get("organization")+")";}if(b.data.ownerType!="USER"){c+='<div style="float:right"><img src="img/icons/pencil_delete.png"/></div>';c+='<span style="color: #555"><b>'+d+"</b><br/>"+a+"</span>";}else{c+="<b>"+d+"</b><br/>"+a;}return c;}var pagingBar=new Ext.PagingToolbar({pageSize:20,store:contactStore,displayInfo:true,displayMsg:"{0} - {1} sur {2}",emptyMsg:""});var contactGrid=new Ext.grid.GridPanel({store:contactStore,trackMouseOver:false,loadMask:true,region:"center",columns:[{id:"topic",header:"Nom",dataIndex:"name",width:420,renderer:renderTopic,sortable:true},{header:"mail",dataIndex:"mail",width:100,hidden:true,sortable:true}],viewConfig:{forceFit:true,enableRowBody:true,showPreview:true,emptyText:"Aucun contact ne correspond à ce filtre"},bbar:pagingBar,border:false,sm:new Ext.grid.RowSelectionModel({singleSelect:true,listeners:{rowselect:function(c,b,a){if(a.data.ownerType!="USER"){Ext.getCmp("contactFormTitle").disable();Ext.getCmp("contactFormName").disable();Ext.getCmp("contactFormMail").disable();Ext.getCmp("contactFormPhone").disable();Ext.getCmp("contactFormMobile").disable();Ext.getCmp("contactFormFax").disable();Ext.getCmp("contactFormOrganization").disable();Ext.getCmp("contactFormFunction").disable();Ext.getCmp("contactFormAddress").disable();Ext.getCmp("prefsContactsButtonMod").disable();Ext.getCmp("prefsContactsButtonDel").disable();}else{Ext.getCmp("contactFormTitle").enable();Ext.getCmp("contactFormName").enable();Ext.getCmp("contactFormMail").enable();Ext.getCmp("contactFormPhone").enable();Ext.getCmp("contactFormMobile").enable();Ext.getCmp("contactFormFax").enable();Ext.getCmp("contactFormOrganization").enable();Ext.getCmp("contactFormFunction").enable();Ext.getCmp("contactFormAddress").enable();Ext.getCmp("prefsContactsButtonMod").enable();Ext.getCmp("prefsContactsButtonDel").enable();}Ext.getCmp("contactFormId").setValue(a.get("id"));Ext.getCmp("contactFormTitle").setValue(a.get("title"));Ext.getCmp("contactFormName").setValue(a.get("name"));Ext.getCmp("contactFormMail").setValue(a.get("mail"));Ext.getCmp("contactFormPhone").setValue(a.get("phone"));Ext.getCmp("contactFormMobile").setValue(a.get("mobile"));Ext.getCmp("contactFormFax").setValue(a.get("fax"));Ext.getCmp("contactFormOrganization").setValue(a.get("organization"));Ext.getCmp("contactFormFunction").setValue(a.get("orgFunction"));Ext.getCmp("contactFormAddress").setValue(a.get("address"));}}})});var contactForm=new Ext.form.FormPanel({region:"center",border:false,bodyStyle:"padding:5px",defaultType:"textfield",url:IACV_SERVER_URL+"contact.php",defaults:{labelSeparator:" ",anchor:"100%"},baseParams:{action:"modify"},items:[{xtype:"hidden",name:"id",id:"contactFormId"},{xtype:"fieldset",title:"Général",autoHeight:true,defaultType:"textfield",defaults:{anchor:"100%"},items:[{xtype:"combo",id:"contactFormTitle",fieldLabel:"Civilité",name:"titleText",hiddenName:"title",store:new Ext.data.SimpleStore({fields:["titleValue","titleName"],data:[["NA","N.A."],["M","Monsieur"],["MELLE","Mademoiselle"],["MME","Madame"]]}),valueField:"titleValue",displayField:"titleName",triggerAction:"all",mode:"local",editable:false,forceSelection:true,value:"NA"},{id:"contactFormName",fieldLabel:"Nom du contact",name:"name",value:""},{id:"contactFormMail",fieldLabel:"Adresse mail",name:"mail"}]},{xtype:"fieldset",title:"Numéros de téléphone",autoHeight:true,defaultType:"textfield",defaults:{anchor:"100%"},items:[{id:"contactFormPhone",fieldLabel:"Fixe",name:"home",value:""},{id:"contactFormMobile",fieldLabel:"Mobile",name:"mobile"},{id:"contactFormFax",fieldLabel:"Fax",name:"fax"}]},{xtype:"fieldset",title:"Informations",autoHeight:true,defaultType:"textfield",defaults:{anchor:"100%"},items:[{id:"contactFormOrganization",fieldLabel:"Structure",name:"organization"},{id:"contactFormFunction",fieldLabel:"Fonction",name:"orgFunction"},{id:"contactFormAddress",fieldLabel:"Adresse",name:"address",xtype:"textarea",height:70}]}],bbar:[{xtype:"tbbutton",text:"Créer une nouvelle fiche",cls:"x-btn-text-icon",icon:"img/icons/add.png",handler:function(){innoAgenda.Windows.NewContactWindow.show();}},"->",{xtype:"tbbutton",text:"Valider les modifications",cls:"x-btn-text-icon",icon:"img/icons/vcard_edit.png",id:"prefsContactsButtonMod",handler:function(){contactForm.getForm().submit();}},{xtype:"tbbutton",text:"Supprimer",cls:"x-btn-text-icon",icon:"img/icons/delete.png",id:"prefsContactsButtonDel",handler:function(){var a=Ext.getCmp("contactFormId").getValue();Ext.Ajax.request({url:IACV_SERVER_URL+"contact.php",success:function(b){b=Ext.util.JSON.decode(b.responseText);if(b.success){contactStore.load();}}.createDelegate(this),failure:function(b){Ext.Msg.show({title:"Erreur",buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR,msg:"Impossible de joindre le serveur"});},params:{action:"remove",id:a}});}}],listeners:{actioncomplete:function(a,b){if(b.type=="submit"){contactStore.load();}}}});var contactFilter=new Ext.form.FormPanel({height:50,region:"north",layout:"absolute",items:[{xtype:"textfield",value:"",anchor:"100%",id:"prefsContactsFilter",emptyText:"Filtrer ici les résultats",enableKeyEvents:true,listeners:{keypress:function(a,b){if(b.getKey()==b.ENTER){contactStore.load({params:{start:0,limit:20}});}},keyup:function(b,c){var a=c.getKey();if((a==c.BACKSPACE||a==c.DELETE)&&this.getValue().length==0){contactStore.load({params:{start:0,limit:20}});}}}},{xtype:"checkbox",id:"prefsContactsFilterOnlyMine",checked:false,x:5,y:20,listeners:{check:function(b,a){if(a){contactStoreMine=1;}else{contactStoreMine=0;}contactStore.load();}}},{xtype:"label",checked:false,x:25,y:25,text:"Afficher uniquement mes contacts"}]});innoAgenda.Windows.ContactWindow=new Ext.Window({layout:"border",width:750,height:480,resizable:false,title:"Gestion des contacts",modal:true,closeAction:"hide",plain:true,id:"prefsContacts",iconCls:"prefsContacts",items:[contactForm,{xtype:"panel",layout:"border",region:"west",width:350,split:true,border:false,items:[contactFilter,contactGrid]}]});var addContactForm=new Ext.form.FormPanel({border:false,bodyStyle:"padding:5px",defaultType:"textfield",url:IACV_SERVER_URL+"contact.php",defaults:{labelSeparator:" ",anchor:"100%"},baseParams:{action:"create"},items:[{xtype:"fieldset",title:"Général",autoHeight:true,defaultType:"textfield",defaults:{anchor:"100%"},items:[{xtype:"combo",fieldLabel:"Civilité",name:"titleText",hiddenName:"title",store:new Ext.data.SimpleStore({fields:["titleValue","titleName"],data:[["NA","N.A."],["M","Monsieur"],["MELLE","Mademoiselle"],["MME","Madame"]]}),valueField:"titleValue",displayField:"titleName",triggerAction:"all",mode:"local",editable:false,forceSelection:true,value:"NA"},{fieldLabel:"Nom du contact",name:"name",value:""},{fieldLabel:"Adresse mail",name:"mail"}]},{xtype:"fieldset",title:"Numéros de téléphone",autoHeight:true,defaultType:"textfield",defaults:{anchor:"100%"},items:[{fieldLabel:"Fixe",name:"home",value:""},{fieldLabel:"Mobile",name:"mobile"},{fieldLabel:"Fax",name:"fax"}]},{xtype:"fieldset",title:"Informations",autoHeight:true,defaultType:"textfield",defaults:{anchor:"100%"},items:[{fieldLabel:"Structure",name:"organization"},{fieldLabel:"Fonction",name:"orgFunction"},{fieldLabel:"Adresse",name:"address",xtype:"textarea",height:70}]}],listeners:{actioncomplete:function(a,b){if(b.type=="submit"){innoAgenda.Windows.NewContactWindow.hide();contactStore.load();}}}});innoAgenda.Windows.NewContactWindow=new Ext.Window({layout:"fit",width:400,height:480,resizable:false,title:"Nouvelle fiche",modal:true,closeAction:"hide",plain:true,id:"newContactWindow",iconCls:"prefsContactsAdd",items:[addContactForm],listeners:{show:function(){addContactForm.getForm().reset();}},bbar:[{id:"newAbsenceWindowCancelButton",text:"Annuler",cls:"x-btn-text-icon",icon:"img/icons/cancel.png",handler:function(){innoAgenda.Windows.NewContactWindow.hide();}},"->",{xtype:"tbbutton",text:"Ajouter la fiche",cls:"x-btn-text-icon",icon:"img/icons/add.png",handler:function(){addContactForm.getForm().submit();}}]});innoAgenda.Windows.AdminPublicFormAction="add";innoAgenda.Windows.AdminPublicSelectedUser=null;innoAgenda.Windows.AdminPublicSelectedUserPhoto=null;innoAgenda.Windows.AdminPublicTreeLoader=new Ext.tree.TreeLoader({dataUrl:IACV_SERVER_URL+"adminPublic.php",baseParams:{action:"list"}});innoAgenda.Windows.AdminPublicTreeNode=new Ext.tree.AsyncTreeNode({text:"innoAgenda",draggable:false,id:"base",expanded:true,iconCls:"tree-innoagenda",listeners:{expand:function(a){a.cascade(function(b){if(b.attributes.detail&&b.attributes.detail.id==innoAgenda.Windows.AdminPublicSelectedUser){b.select();}});}}});innoAgenda.Windows.AdminPublicTree=new Ext.tree.TreePanel({title:"Mes utilisateurs",animate:true,autoScroll:true,loader:innoAgenda.Windows.AdminPublicTreeLoader,root:innoAgenda.Windows.AdminPublicTreeNode,enableDrag:true,containerScroll:true,id:"customgroupSource",region:"west",split:true,width:240,minSize:240,maxSize:240,listeners:{click:function(b){innoAgenda.Windows.AdminPublicForm.getForm().reset();Ext.getCmp("adminPublicUserAvatar").setValue("");innoAgenda.Windows.AdminPublicHelp.body.update(innoAgenda.Windows.AdminPublicHelpMsg[0]);if(b.attributes.detail){Ext.getCmp("adminPublicUserPwd").setValue("password");Ext.getCmp("adminPublicUserPwdVerif").setValue("password");Ext.getCmp("adminPublicUserDelButton").show();var a=new Ext.data.Record(b.attributes.detail);if(b.attributes.detail.photo){Ext.getCmp("adminPublicAvatar").setSrc("img/avatars/"+b.attributes.detail.id+".png?nocache"+Math.random()+"");innoAgenda.Windows.AdminPublicSelectedUserPhoto=b.attributes.detail.id+".png";}else{Ext.getCmp("adminPublicAvatar").setSrc("img/missingAvatar.png");innoAgenda.Windows.AdminPublicSelectedUserPhoto=null;}innoAgenda.Windows.AdminPublicSelectedUser=b.attributes.detail.id;innoAgenda.Windows.AdminPublicForm.getForm().loadRecord(a);Ext.getCmp("adminPublicUserAddButton").hide();Ext.getCmp("adminPublicUserLogin").disable();if(b.attributes.inactive){innoAgenda.Windows.AdminPublicHelp.body.update(innoAgenda.Windows.AdminPublicHelpMsg[2]);innoAgenda.Windows.AdminPublicForm.hide();innoAgenda.Windows.AdminPublicHelp.show();Ext.getCmp("adminPublicUserAddButton").hide();Ext.getCmp("adminPublicUserModButton").hide();}else{Ext.getCmp("adminPublicUserModButton").show();innoAgenda.Windows.AdminPublicFormAction="mod";innoAgenda.Windows.AdminPublicHelp.hide();innoAgenda.Windows.AdminPublicForm.show();}}else{Ext.getCmp("adminPublicUserDelButton").hide();if(b.attributes.value=="#adduserlocked"||b.attributes.value!="#adduser"){if(b.attributes.value=="#adduserlocked"){innoAgenda.Windows.AdminPublicHelp.body.update(innoAgenda.Windows.AdminPublicHelpMsg[1]);}innoAgenda.Windows.AdminPublicForm.hide();innoAgenda.Windows.AdminPublicHelp.show();Ext.getCmp("adminPublicUserAddButton").hide();}else{innoAgenda.Windows.AdminPublicForm.show();innoAgenda.Windows.AdminPublicHelp.hide();Ext.getCmp("adminPublicUserAddButton").show();}Ext.getCmp("adminPublicAvatar").setSrc("img/missingAvatar.png");innoAgenda.Windows.AdminPublicSelectedUserPhoto=null;Ext.getCmp("adminPublicUserModButton").hide();Ext.getCmp("adminPublicUserLogin").enable();innoAgenda.Windows.AdminPublicFormAction="add";}}}});innoAgenda.Windows.AdminPublicFormImageButton=new Ext.form.FileUploadField({buttonOnly:true,labelWidth:0,buttonCfg:{text:"Changer"},name:"avatar",listeners:{fileselected:function(b,a){if(!a||a==undefined||a==""){return false;}if(!/^.*\.(jpg|jpeg|png)$/i.test(a)){Ext.Msg.show({title:"Erreur",buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR,msg:"Votre image doit être au format PNG ou JPG."});return false;}Ext.getCmp("adminPublicAvatar").setSrc("img/loading100.gif");innoAgenda.Windows.AdminPublicForm.getForm().submit({url:IACV_SERVER_URL+"adminPublic.php",waitTitle:"Chargement en cours",waitMsg:"Chargement de votre fichier...",clientValidation:false,params:{action:"uploadAvatar"},success:function(d,e){var c=Ext.util.JSON.decode(e.response.responseText);Ext.getCmp("adminPublicUserAvatar").setValue(c.file);innoAgenda.Windows.AdminPublicFormImageButton.reset();Ext.getCmp("adminPublicAvatar").setSrc("img/avatars/tmp/"+c.file+".resized");},failure:function(e,c,d){if(innoAgenda.Windows.AdminPublicSelectedUserPhoto){Ext.getCmp("adminPublicAvatar").setSrc("img/avatars/"+innoAgenda.Windows.AdminPublicSelectedUserPhoto+"?nocache"+Math.random()+"");}else{Ext.getCmp("adminPublicAvatar").setSrc("img/missingAvatar.png");}Ext.Msg.show({title:"Erreur",buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR,msg:"Un problème est survenu lors du chargement de la photo. Cela peut-être du à une taille trop importante de l'image (> 2Mo)."});}});}}});innoAgenda.Windows.AdminPublicHelpMsg=["<b>Cliquez sur un utilisateur existant</b> pour le modifier,<br/<br/>ou sur <br/><br/<div style='background: transparent url(img/icons/add.png) no-repeat; padding-left: 20px;height: 16px; line-height:14px;'><b>Ajouter un utilisateur</b> pour en créer un nouveau.</div>","<b>Vous avez déjà créé 10 utilisateurs.</b><br/><br/>Si vous désirez créer plus d'utilisateurs, vous devriez passer à la version complète d'innoAgenda : <a href='http://www.innoagenda.fr' targert='_blank'>www.innoagenda.fr</a>","<b>Cet utilisateur n'a pas encore activé son compte, grâce au mail reçu lors de sa création.</b>","<b>Un email a été envoyé à cet utilisateur pour activer son compte.</b><br/><br/>Il dispose d'un délai de 7 jours pour activer son compte.",];innoAgenda.Windows.AdminPublicHelp=new Ext.Panel({border:false,bodyStyle:"padding:10px;",html:innoAgenda.Windows.AdminPublicHelpMsg[0]});innoAgenda.Windows.AdminPublicForm=new Ext.FormPanel({border:false,bodyStyle:"padding:10px;",labelWidth:80,fileUpload:true,defaults:{border:false},items:[{border:false,defaults:{border:false},layout:"column",items:[{columnWidth:0.75,layout:"form",items:[{xtype:"hidden",id:"adminPublicUserId",name:"id"},{xtype:"hidden",id:"adminPublicUserAvatar",name:"avatarFileName"},{xtype:"textfield",fieldLabel:"Identifiant",id:"adminPublicUserLogin",name:"login",anchor:"95%",emptyText:"Identifiant de l'utilisateur (requis)",regex:/^[a-z]{1}[a-z0-9-_.]{3,19}$/,regexText:"La longueur de l'identifiant doit être comprise entre 4 et 20 caractères, cet identifiant doit commencer par une lettre minuscule et n'être composé que de lettres minuscules, de chiffres, de points et de tirets.",minLength:4,maxLength:20,minLengthText:"La longueur de l'identifiant doit être comprise entre 4 et 20 caractères",maxLengthText:"La longueur de l'identifiant doit être comprise entre 4 et 20 caractères",allowBlank:false},{xtype:"textfield",fieldLabel:"Mot de passe",inputType:"password",id:"adminPublicUserPwd",name:"password",anchor:"95%",regex:/^[a-zA-Z0-9]{8,32}$/,regexText:"La longueur du mot de passe doit être comprise entre 8 et 32 caractères et n'être composée que de lettres et de chiffres.",allowBlank:false},{xtype:"textfield",fieldLabel:"Mot de passe",inputType:"password",initialPassField:"adminPublicUserPwd",vtype:"password",id:"adminPublicUserPwdVerif",name:"passswordverif",anchor:"95%",regex:/^[a-zA-Z0-9]{8,32}$/,regexText:"La longueur du mot de passe doit être comprise entre 8 et 32 caractères et n'être composée que de lettres et de chiffres.",allowBlank:false},{xtype:"textfield",fieldLabel:"Nom",name:"lastname",anchor:"95%",emptyText:"Nom de l'utilisateur (requis)",minLength:2,maxLength:20,maxLengthText:"Le nom ne peut pas excéder 20 caractères",allowBlank:false},{xtype:"textfield",fieldLabel:"Prénom",name:"firstname",anchor:"95%",emptyText:"Prénom de l'utilisateur (requis)",minLength:2,maxLength:20,maxLengthText:"Le nom ne peut pas excéder 20 caractères",allowBlank:false}]},{columnWidth:0.25,layout:"anchor",labelWidth:0,id:"adminPublicFormImage",items:[{xtype:"image",url:"img/missingAvatar.png",id:"adminPublicAvatar",width:100,height:100,border:true},innoAgenda.Windows.AdminPublicFormImageButton]}]},{layout:"column",items:[{columnWidth:1,xtype:"fieldset",layout:"form",bodyStyle:"padding:5px 5px 0",title:"Coordonnées",autoHeight:true,defaults:{anchor:"98%"},defaultType:"textfield",items:[{xtype:"textfield",fieldLabel:"Email",name:"mail",emptyText:"Email de l'utilisateur (requis)",vtype:"email",vtypeText:"Merci d'entrer une adresse email valide",allowBlank:false},{fieldLabel:"Téléphone",name:"phone",minLength:10,maxLength:14,maxLengthText:"Le numéro de téléphone ne peut pas excéder 14 caractères",regex:/^[0-9]{2}[-. ]?[0-9]{2}[-. ]?[0-9]{2}[-. ]?[0-9]{2}[-. ]?[0-9]{2}$/,regexText:"Le numéro de téléphone doit être composé de 10 chiffres au format 0505050505 ou 05-05-05-05-05 ou 05.05.05.05.05"},{xtype:"textarea",fieldLabel:"Adresse",name:"address",id:"adminPublicAddress",invalidText:"L'adresse spécifiée ne semble pas valide.",listeners:{blur:function(){var b=new GClientGeocoder();var a=Ext.getCmp("adminPublicAddress").getValue();if(a!=""){b.getLatLng(a,function(c){if(!c){Ext.getCmp("adminPublicAddress").markInvalid();}else{Ext.getCmp("adminPublicAddress").clearInvalid();}});}}}}]}]}]});innoAgenda.Windows.AdminPublicUserSubmit=function(){innoAgenda.Windows.AdminPublicForm.getForm().submit({url:IACV_SERVER_URL+"adminPublic.php",waitTitle:"Chargement en cours",waitMsg:"Chargement de votre fichier...",params:{action:innoAgenda.Windows.AdminPublicFormAction},success:function(b,c){innoAgenda.Windows.AdminPublicTreeNode.reload();var a=Ext.util.JSON.decode(c.response.responseText);if(a.action=="add"){innoAgenda.Windows.AdminPublicHelp.body.update(innoAgenda.Windows.AdminPublicHelpMsg[3]);innoAgenda.Windows.AdminPublicForm.hide();innoAgenda.Windows.AdminPublicHelp.show();Ext.getCmp("adminPublicUserAddButton").hide();Ext.getCmp("adminPublicUserModButton").hide();Ext.getCmp("adminPublicUserDelButton").hide();}iacv.setWhoInfo();},failure:function(a,b){if(b.failureType=="server"){obj=Ext.util.JSON.decode(b.response.responseText);if(obj.errors.reason=="PUBLICADMIN_USER_EXISTS"){Ext.getCmp("adminPublicUserLogin").markInvalid("Un utilisateur avec le même identifiant existe déjà. Merci de choisir un autre identifiant.");}}}});};innoAgenda.Windows.AdminPublicUserDelete=function(){var a="cet utilisateur";innoAgenda.Windows.AdminPublicTreeNode.cascade(function(b){if(b.attributes.detail&&b.attributes.detail.id==innoAgenda.Windows.AdminPublicSelectedUser){a=b.attributes.text;}});if(innoAgenda.User.id==innoAgenda.Windows.AdminPublicSelectedUser){Ext.Msg.show({title:"Erreur",buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR,msg:"Vous ne pouvez vous pas vous supprimer !"});return false;}Ext.Msg.confirm("Suppression d'un utilisateur","Voulez-vous vraiment supprimer "+a+" ?",function(b){if(b=="yes"){Ext.Ajax.request({url:IACV_SERVER_URL+"adminPublic.php",success:function(c){innoAgenda.Windows.AdminPublicSelectedUser=false;c=Ext.util.JSON.decode(c.responseText);if(c.success){innoAgenda.Windows.AdminPublicTreeNode.reload();}else{innoAgenda.Windows.AdminPublicTreeNode.reload();}innoAgenda.Windows.AdminPublicTreeNode.select();innoAgenda.Windows.AdminPublicHelp.body.update(innoAgenda.Windows.AdminPublicHelpMsg[0]);innoAgenda.Windows.AdminPublicForm.hide();innoAgenda.Windows.AdminPublicHelp.show();Ext.getCmp("adminPublicUserAddButton").hide();Ext.getCmp("adminPublicUserDelButton").hide();Ext.getCmp("adminPublicUserModButton").hide();},failure:function(c){innoAgenda.Windows.AdminPublicTreeNode.reload();},params:{action:"del",id:innoAgenda.Windows.AdminPublicSelectedUser}});}});};innoAgenda.Windows.AdminPublicWindow=new Ext.Window({layout:"border",width:750,height:480,resizable:false,title:"Administration de mes utilisateurs",modal:true,closeAction:"hide",plain:true,id:"adminPublicWindow",iconCls:"adminPublicWindow",items:[innoAgenda.Windows.AdminPublicTree,{title:"Détail",region:"center",layout:"fit",items:[innoAgenda.Windows.AdminPublicHelp,innoAgenda.Windows.AdminPublicForm],bbar:["->",{id:"adminPublicUserModButton",text:"Modifier l'utilisateur",formBind:true,handler:innoAgenda.Windows.AdminPublicUserSubmit,cls:"x-btn-text-icon",icon:"img/icons/user_edit.png",hidden:true},{id:"adminPublicUserDelButton",text:"Supprimer l'utilisateur",formBind:true,handler:innoAgenda.Windows.AdminPublicUserDelete,cls:"x-btn-text-icon",icon:"img/icons/cross.png",hidden:true},{id:"adminPublicUserAddButton",text:"Ajouter l'utilisateur",formBind:true,handler:innoAgenda.Windows.AdminPublicUserSubmit,cls:"x-btn-text-icon",icon:"img/icons/user_add.png",hidden:true},{id:"adminPublicUserCancelButton",text:"Fermer la fenêtre",formBind:true,handler:function(){Ext.getCmp("adminPublicWindow").hide();},cls:"x-btn-text-icon",icon:"img/icons/cancel.png"}]}]});innoAgenda.Calendar.Menus={dayMenu:new Ext.menu.Menu({items:[{text:"Note de journée",icon:"img/icons/note_add.png",handler:function(){iacv.weekContextMenuNoteDay();}}]}),weekDayMenu:new Ext.menu.Menu({items:[{text:"Note de journée",icon:"img/icons/note_add.png",handler:function(){iacv.weekContextMenuNoteDay();}},"-",{text:"Vue par jour",icon:"img/icons/date_go.png",handler:function(){iacv.weekContextMenuSetDay();}}]}),eventMenu:new Ext.menu.Menu({purpose:"STANDARD",forReservation:function(){this.purpose="RESERVATION";Ext.getCmp("eventMenuRecap").setText("Récapitulatif de la réservation");Ext.getCmp("eventMenuModify").setText("Modifier la réservation");Ext.getCmp("eventMenuDelete").setText("Supprimer la réservation");},forStandardEvent:function(){this.purpose="STANDARD";Ext.getCmp("eventMenuRecap").setText("Récapitulatif de l'événement");Ext.getCmp("eventMenuModify").setText("Modifier l'événement");Ext.getCmp("eventMenuDelete").setText("Supprimer l'événement");},items:[{id:"eventMenuRecap",text:"Récapitulatif de l'événement",icon:"img/icons/information.png",handler:function(){iacv.eventInfo(innoAgenda.Calendar.Menus.eventMenu.purpose=="RESERVATION");}},{text:"Itinéraire",icon:"img/icons/map_go.png",handler:function(){var a=iacv.eventDivToId(iacv.menuSelectedEventId);iacv.eventInfo(innoAgenda.Calendar.Menus.eventMenu.purpose=="RESERVATION",a,3);},disabled:true,id:"eventMenuDirections"},"-",{text:"Modifier l'événement",icon:"img/icons/calendar_edit.png",handler:function(){iacv.modifyEvent(innoAgenda.Calendar.Menus.eventMenu.purpose=="RESERVATION");},id:"eventMenuModify"},{text:"Supprimer l'événement",icon:"img/icons/calendar_delete.png",handler:function(){Ext.Msg.confirm("Suppression "+(innoAgenda.Calendar.Menus.eventMenu.purpose=="STANDARD"?"d'événement":"de réservation"),"Voulez-vous vraiment supprimer "+(innoAgenda.Calendar.Menus.eventMenu.purpose=="STANDARD"?"cet événement ?":"cette réservation ?"),function(a){if(a=="yes"){iacv.deleteEvent(innoAgenda.Calendar.Menus.eventMenu.purpose=="RESERVATION");}});},id:"eventMenuDelete"}]})};innoAgenda.Calendar.Event={addInSingleView:function(v,p,b){var q=this.createContent(v);var k=Ext.get("iacv_day_"+this.DateStartYear+"_"+this.DateStartMonth+"_"+this.DateStartDay);var c=v.purpose=="RESERVATION";var u=v.who.type=="resource";var n=innoAgenda.Permissions[v.who.id].writeAgenda&&(!u||c);var r=v.color;if(iacv.viewType=="week"||iacv.viewType=="day"){var m=iacv.hourToPixel(this.DateStartHour,this.DateStartMinutes);var g=(p||b)?(24*4*iacv.quarterHeight):iacv.hourToPixel(this.DateEndHour,this.DateEndMinutes);var o=g-m;var f="eventDiv_"+v.id;if(k){var l='<div id="'+f+'" class="'+(v.hidden?"innoagendaUnauthorized ":(n?"":"innoagendaReadOnly "))+"iacvEvent "+(c?"innoagendaDayReservation":"innoagendaDayEvent")+'">';if(c){l+='<div class="innoagendaDayReservationTop"/>';}if(!p){l+='<div id="'+f+'_bottom" class="'+(n?"":"innoagendaReadOnly ")+(c?"innoagendaDayReservationBottom":"innoagendaDayEventBottom")+'"></div>';}l+=q.content;l+="</div>";if(Ext.get(f)){return false;}debug("Event already exists",6);Ext.DomHelper.append(k,l);var a=Ext.get(f);a.applyStyles({top:m,height:o,backgroundColor:r});this.handleActions(a);if(!v.hidden){var d=this.createTooltip(f,q.comment);iacv.tooltips.push(d.id);}if(p){a.addClass("iacv_multi_days_event");}}if(p){var t=v.start;var s=0;do{t=t.add(Date.DAY,1);var e=Ext.get("iacv_day_"+t.format("Y_m_d"));if(!e){continue;}f="eventDiv_"+v.id+"__md"+s;l='<div id="'+f+'" class="'+(v.hidden?"innoagendaUnauthorized ":(n?"":"innoagendaReadOnly "))+'iacvEvent innoagendaDayEvent iacv_multi_days_event">';l+="</div>";Ext.DomHelper.append(e,l);var a=Ext.get(f);if(v.stop.format("Y_m_d")!=t.format("Y_m_d")){g=24*(4*iacv.quarterHeight);}else{g=iacv.hourToPixel(this.DateEndHour,this.DateEndMinutes);}a.applyStyles({top:0,height:g,backgroundColor:r});if(!v.hidden){var d=this.createTooltip(f,q.comment);iacv.tooltips.push(d.id);}this.handleActions(a);s++;}while(v.stop.format("Y_m_d")!=t.format("Y_m_d"));}}else{if(iacv.viewType=="month"){if(k){f="eventDiv_"+v.id;if(Ext.get(f)){return false;}l='<div id="'+f+'" class="'+(v.hidden?"innoagendaUnauthorized ":(n?"":"innoagendaReadOnly "))+"iacvEvent iacvMonthEvent"+(c?" iacvReservation":"")+'" style="background-color:'+r+'">';l+="<b>"+v.start.format("H:i")+"</b> "+(v.hidden?"Evénement privé":v.type.path);l+="</div>";Ext.DomHelper.append(k,l);var a=Ext.get(f);this.handleActions(a);if(!v.hidden){d=this.createTooltip(f,q.comment);iacv.tooltips.push(d.id);}if(p){a.addClass("iacvMonthEventMultiStart");}}if(p){t=v.start;s=0;do{t=t.add(Date.DAY,1);e=Ext.get("iacv_day_"+t.format("Y_m_d"));if(!e){break;}f="eventDiv_"+v.id+"__md"+s;l='<div id="'+f+'" class="'+(v.hidden?"innoagendaUnauthorized ":(n?"":"innoagendaReadOnly "))+'iacvEvent iacvMonthEvent" style="background-color:'+r+'">';l+=+" "+v.title;l+="</div>";Ext.DomHelper.append(e,l);var a=Ext.get(f);if(!v.hidden){var d=this.createTooltip(f,q.comment);iacv.tooltips.push(d.id);}this.handleActions(a);if(v.stop.format("Y_m_d")==t.format("Y_m_d")){a.addClass("iacvMonthEventMultiStop");a.update("<b>"+v.stop.format("H:i")+"</b> "+v.title);}else{a.addClass("iacvMonthEventMulti");a.update(v.title);}s++;}while(v.stop.format("Y_m_d")!=t.format("Y_m_d"));}}else{if(iacv.viewType=="year"){}}}return true;},addInGroupView:function(y,r,b){var t=this.createContent(y);var l="iacv_day_"+this.DateStartYear+"_"+this.DateStartMonth+"_"+this.DateStartDay+"_"+y.who.id;var k=Ext.get(l);var c=y.purpose=="RESERVATION";var x=y.who.type=="resource";var o=innoAgenda.Permissions[y.who.id].writeAgenda&&(!x||c);var u=y.color;if(iacv.viewType=="day"){var n=iacv.hourToPixel(this.DateStartHour,this.DateStartMinutes);var g=(r||b)?24*(4*iacv.quarterHeight):iacv.hourToPixel(this.DateEndHour,this.DateEndMinutes);var q=g-n;var f="eventDiv_"+y.id;var m='<div id="'+f+'" class="'+(y.hidden?"innoagendaUnauthorized ":(o?"":"innoagendaReadOnly "))+"iacvEvent "+(c?"innoagendaDayReservation":"innoagendaDayEvent")+'">';if(c){m+='<div class="innoagendaDayReservationTop"/>';}if(!r){m+='<div id="'+f+'_bottom" class="'+(o?"":"innoagendaReadOnly ")+(c?"innoagendaDayReservationBottom":"innoagendaDayEventBottom")+'"></div>';}m+=t.content;m+="</div>";if(k){if(Ext.get(f)){return false;}debug("Event already exists",6);a=Ext.DomHelper.append(k,m);var a=Ext.get(f);a.applyStyles({top:n,height:q,backgroundColor:u});this.handleActions(a);if(!y.hidden){var d=this.createTooltip(f,t.comment);iacv.tooltips.push(d.id);}if(r){a.addClass("iacv_multi_days_event");}}if(r){v=y.start;var w=0;do{v=v.add(Date.DAY,1);var e=Ext.get("iacv_day_"+v.format("Y_m_d")+"_"+y.who.id);if(!e){continue;}f="eventDiv_"+y.id+"__md"+w;m='<div id="'+f+'" class="'+(y.hidden?"innoagendaUnauthorized ":(o?"":"innoagendaReadOnly "))+'iacvEvent innoagendaDayEvent iacv_multi_days_event">';m+="</div>";Ext.DomHelper.append(e,m);var a=Ext.get(f);if(y.stop.format("Y_m_d")!=v.format("Y_m_d")){g=24*(4*iacv.quarterHeight);}else{g=iacv.hourToPixel(this.DateEndHour,this.DateEndMinutes);}if(!y.hidden){var d=this.createTooltip(f,t.comment);iacv.tooltips.push(d.id);}a.applyStyles({top:0,height:g,backgroundColor:u});this.handleActions(a);w++;}while(y.stop.format("Y_m_d")!=v.format("Y_m_d"));}}else{if(iacv.viewType=="week"||iacv.viewType=="month"){var p=100/24;if(k){f="eventDiv_"+y.id;m='<div id="'+f+'" class="'+(y.hidden?"innoagendaUnauthorized ":"")+"iacvEvent iacvGroupWMEvent "+(c?"iacvReservation":"")+'">';m+=t.content;m+="</div>";Ext.DomHelper.append(k,m);var a=Ext.get(f);this.handleActions(a);n=iacv.hourToPixel(this.DateStartHour,this.DateStartMinutes,p);q=iacv.hourToPixel(this.DateEndHour,this.DateEndMinutes,p)-n;if(y.stop.format("Y_m_d")!=this.DateStartYear+"_"+this.DateStartMonth+"_"+this.DateStartDay){g=24*p;}else{g=iacv.hourToPixel(this.DateEndHour,this.DateEndMinutes,p);}q=g-n;a.applyStyles({backgroundColor:u,top:n,height:q});a.setOpacity(0.9);if(!y.hidden){var d=this.createTooltip(f,t.comment);iacv.tooltips.push(d.id);}}if(r){var v=y.start;w=0;do{v=v.add(Date.DAY,1);var s="iacv_day_"+v.format("Y_m_d")+"_"+y.who.id;e=Ext.get(s);if(!e){continue;}f="eventDiv_"+y.id+"__md"+w;m='<div id="'+f+'" class="'+(y.hidden?"innoagendaUnauthorized ":"")+'iacvEvent iacvGroupWMEvent">';m+=t.content;m+="</div>";if(y.stop.format("Y_m_d")!=v.format("Y_m_d")){g=24*p;}else{g=iacv.hourToPixel(this.DateEndHour,this.DateEndMinutes,p);}if(y.start.format("Y_m_d")!=v.format("Y_m_d")){n=0;}else{n=iacv.hourToPixel(this.DateStartHour,this.DateStartMinutes,p);}q=g-n;Ext.DomHelper.append(e,m);var a=Ext.get(f);a.applyStyles({backgroundColor:u,top:n,height:q});a.setOpacity(0.9);if(!y.hidden){var d=this.createTooltip(f,t.comment);iacv.tooltips.push(d.id);}this.handleActions(a);w++;}while(y.stop.format("Y_m_d")!=v.format("Y_m_d"));}}}return true;},add:function(c){var b=false;this.DateStartDay=Ext.util.Format.date(c.start,"d");this.DateStartMonth=Ext.util.Format.date(c.start,"m");this.DateStartYear=Ext.util.Format.date(c.start,"Y");this.DateStartHour=Ext.util.Format.date(c.start,"H");this.DateStartMinutes=Ext.util.Format.date(c.start,"i");this.DateStartTimestamp=c.start.format("U");this.DateEndDay=Ext.util.Format.date(c.stop,"d");this.DateEndMonth=Ext.util.Format.date(c.stop,"m");this.DateEndYear=Ext.util.Format.date(c.stop,"Y");this.DateEndHour=Ext.util.Format.date(c.stop,"H");this.DateEndMinutes=Ext.util.Format.date(c.stop,"i");this.DateEndTimestamp=c.stop.format("U");if(this.DateStartTimestamp>=this.DateEndTimestamp){debug("invalid event",4);return false;}var d=c.start.clearTime(true).add(Date.DAY,1).format("U");var a=d==c.stop.format("U");if(!a&&(this.DateStartDay!=this.DateEndDay||this.DateStartMonth!=this.DateEndMonth||this.DateStartYear!=this.DateEndYear)){b=true;}if(iacv.whoType=="user"||iacv.whoType=="resource"){return innoAgenda.Calendar.Event.addInSingleView(c,b,a);}else{if(iacv.whoType=="group"||iacv.whoType=="resources"||iacv.whoType=="view"){return innoAgenda.Calendar.Event.addInGroupView(c,b,a);}else{return false;}}},createTooltip:function(c,a){var b=new Ext.ToolTip({target:c,width:300,height:200,autoScroll:true,html:a,baseCls:"iacvTooltip"});return b;},createContent:function(b){var c=b.stop.format("U")-b.start.format("U");var d="";var a=iacv.panel.getInnerWidth();if(b.hidden){if((iacv.whoType=="group"||iacv.whoType=="resources"||iacv.whoType=="view")&&(iacv.viewType=="week"||iacv.viewType=="month")){if(c>=3600){d+='<div class="iacvEventGroupTop"></div>';}else{if(c>=1800){d+='<div class="iacvEventGroupTopMini"></div>';}}}else{if((b.who.type=="user"||b.who.type=="resource")&&(iacv.viewType=="day"||iacv.viewType=="week")){if(c>=1800){if(c<3600){d+='<div class="eventType">Evénement privé</div>';}}if(c>=3600){d+='<div class="eventLogo" style="background-image: url(img/eventTypes/private.png);';if(a>iacv.eventLogoWidthLimit){d+="display:none";}d+='"></div>';d+='<div class="eventType">Evénement privé</div>';}}}}else{if(b.purpose=="RESERVATION"){if((iacv.whoType=="group"||iacv.whoType=="resources"||iacv.whoType=="view")&&(iacv.viewType=="week"||iacv.viewType=="month")){if(c>=3600){d+='<div class="iacvEventGroupTop"></div>';}else{if(c>=1800){d+='<div class="iacvEventGroupTopMini"></div>';}}}else{if((b.who.type=="user"||b.who.type=="resource")&&(iacv.viewType=="day"||iacv.viewType=="week")){if(c>=1800&&c<3600){d+='<div class="reservationContact">'+b.contact+"</div>";}if(c>=3600){if(b.type){d+='<div class="eventLogo" style="background-image: url(img/eventTypes/'+b.type.logo+");";if(a<iacv.eventLogoWidthLimit){d+="display:none";}d+='"></div>';}d+='<div class="reservationContact">'+b.contact+"</div>";d+='<div class="reservationTitle">'+b.title+"</div>";}if(c>5400){d+='<div class="eventTitle">'+b.comment+"</div>";}}}}else{if((iacv.whoType=="group"||iacv.whoType=="resources"||iacv.whoType=="view")&&(iacv.viewType=="week"||iacv.viewType=="month")){if(c>=3600){d+='<div class="iacvEventGroupTop"></div>';}else{if(c>=1800){d+='<div class="iacvEventGroupTopMini"></div>';}}}else{if((b.who.type=="user"||b.who.type=="resource")&&(iacv.viewType=="day"||iacv.viewType=="week")){if(c>=1800&&c<3600){d+='<div class="eventType">'+b.type.rootType+"</div>";}if(c>=3600){if(b.type.logo!=""){d+='<div class="eventLogo" style="background-image: url(img/eventTypes/'+b.type.logo+");";if(a<iacv.eventLogoWidthLimit){d+="display:none";}d+='"></div>';}d+='<div class="eventType">'+b.type.rootType+"</div>";if(b.type.rootType!=b.type.name){d+='<div class="eventSubType">'+b.type.name+"</div>";}}if(c>5400){d+='<div class="eventTitle">'+b.title+"</div>";}}}}}return{content:d,comment:(b.hidden?false:iacv.eventTooltip(b))};},handleActions:function(a){a.on("mousedown",iacv.eventMouseDown.createDelegate(iacv));a.on("contextmenu",iacv.eventContextMenu.createDelegate(iacv));}};innoAgenda.Calendar.Absence={loadAbsences:function(){Ext.Ajax.request({url:IACV_SERVER_URL+"absences.php",success:function(a){a=Ext.util.JSON.decode(a.responseText);if(a.success){this.cleanAbsences();this.addAbsences(a.absences);}else{}}.createDelegate(this),failure:function(a){Ext.Msg.show({title:"Erreur",buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR,msg:"Impossible de joindre le serveur"});},params:{action:"list",start:iacv.start,stop:iacv.stop,who:iacv.who.id,whoType:iacv.whoType}});},addAbsences:function(s){var g;var m;var p=function(u){u.stopEvent();return false;};var c=Date.parseDate(iacv.start,"U");if(iacv.whoType=="user"){if(iacv.viewType=="day"){m=Ext.get("iacv_day_"+c.format("Y_m_d"));for(var k=0;k<s.length;k++){if(s[k].who==iacv.who.id&&s[k].start>=iacv.start&&s[k].stop<=iacv.stop&&s[k].start!=s[k].stop){var q=Date.parseDate(s[k].start,"U");var b=parseInt(q.format("H"),10)*40+parseInt(q.format("i"),10)*10/15;var d=(s[k].stop-s[k].start)*(40/3600);var a='<div class="iacvAbsence" style="top: '+b+"px; height:"+d+'px;">';a+="</div>";g=Ext.DomHelper.append(m,a,true);g.on("mousedown",p);var t=this.createAbsenceTooltip(g,s[k]);iacv.tooltips.push(t.id);g.setOpacity(s[k].isAccepted?0.5:0.2);}}}else{if(iacv.viewType=="week"){for(var k=0;k<s.length;k++){if(s[k].who==iacv.who.id&&s[k].start>=iacv.start&&s[k].stop<=iacv.stop&&s[k].start!=s[k].stop){var q=Date.parseDate(s[k].start,"U");m=Ext.get("iacv_day_"+q.format("Y_m_d"));if(m){var b=parseInt(q.format("H"),10)*40+parseInt(q.format("i"),10)*10/15;var d=(s[k].stop-s[k].start)*(40/3600);var a='<div class="iacvAbsence" style="top: '+b+"px; height:"+d+'px;">';a+="</div>";g=Ext.DomHelper.append(m,a,true);g.on("mousedown",p);var t=this.createAbsenceTooltip(g,s[k]);iacv.tooltips.push(t.id);g.setOpacity(s[k].isAccepted?0.5:0.2);}}}}else{if(iacv.viewType=="month"){var o=[];var n=[];for(var k=0;k<s.length;k++){if(s[k].who==iacv.who.id&&s[k].start>=iacv.start&&s[k].stop<=iacv.stop&&s[k].start!=s[k].stop){var r=Date.parseDate(s[k].start,"U").format("Y_m_d");m=Ext.get("iacv_day_"+r);if(m&&o.indexOf(r)==-1){o.push(r);var a='<div class="iacvAbsenceMonth">';a+="</div>";g=Ext.DomHelper.insertFirst(m,a,true);g.on("mousedown",p);g.setOpacity(s[k].isAccepted?0.5:0.2);}if(!n[r]){n[r]="";}n[r]+=this.createAbsenceTooltipContent(s[k]);}}for(var f in n){var m=Ext.get("iacv_day_"+f);if(!m){continue;}var e=Date.parseDate(f,"Y_m_d");var l='<div class="tooltipContent"><h1 style="background-image: url(img/icons/weather_sun.png)">Absences du '+e.format("l d F Y")+"</h1>"+n[f]+"</div>";var t=new Ext.ToolTip({target:m,width:300,height:200,autoScroll:true,html:l,baseCls:"iacvTooltip",showDelay:50,hideDelay:0,dismissDelay:0});iacv.tooltips.push(t.id);}}else{if(iacv.viewType=="year"){var o=[];var n=[];for(var k=0;k<s.length;k++){if(s[k].who==iacv.who.id&&s[k].start>=iacv.start&&s[k].stop<=iacv.stop&&s[k].start!=s[k].stop){var r=Date.parseDate(s[k].start,"U").format("Y_m_d");m=Ext.get("iacvYearDay_"+r);if(m&&o.indexOf(r)==-1){o.push(r);var a='<div class="iacvAbsenceMonth">';a+="</div>";g=Ext.DomHelper.insertFirst(m,a,true);g.on("mousedown",p);g.setOpacity(s[k].isAccepted?0.5:0.2);}if(!n[r]){n[r]="";}n[r]+=this.createAbsenceTooltipContent(s[k]);}}for(var f in n){var m=Ext.get("iacvYearDay_"+f);if(!m){continue;}var e=Date.parseDate(f,"Y_m_d");var l='<div class="tooltipContent"><h1 style="background-image: url(img/icons/weather_sun.png)">Absences du '+e.format("l d F Y")+"</h1>"+n[f]+"</div>";var t=new Ext.ToolTip({target:m,width:300,height:200,autoScroll:true,html:l,baseCls:"iacvTooltip",showDelay:50,hideDelay:0,dismissDelay:0});iacv.tooltips.push(t.id);}}}}}}else{if(iacv.viewType=="day"){for(var k=0;k<s.length;k++){if(s[k].start>=iacv.start&&s[k].stop<=iacv.stop&&s[k].start!=s[k].stop){m=Ext.get("iacv_day_"+c.format("Y_m_d")+"_"+s[k].who);if(m){var q=Date.parseDate(s[k].start,"U");var b=parseInt(q.format("H"),10)*40+parseInt(q.format("i"),10)*10/15;var d=(s[k].stop-s[k].start)*(40/3600);var a='<div class="iacvAbsence" style="top: '+b+"px; height:"+d+'px;">';a+="</div>";g=Ext.DomHelper.append(m,a,true);g.on("mousedown",p);var t=this.createAbsenceTooltip(g,s[k]);iacv.tooltips.push(t.id);g.setOpacity(s[k].isAccepted?0.5:0.2);}}}}else{if(iacv.viewType=="week"||iacv.viewType=="month"){for(var k=0;k<s.length;k++){if(s[k].start>=iacv.start&&s[k].stop<=iacv.stop&&s[k].start!=s[k].stop){var r=Date.parseDate(s[k].start,"U").format("Y_m_d");m=Ext.get("iacv_day_"+r+"_"+s[k].who);if(m){var q=Date.parseDate(s[k].start,"U");var b=(parseInt(q.format("H"),10)*60+parseInt(q.format("i"),10))*(5/72);var d=(s[k].stop-s[k].start)/864;var a='<div class="iacvAbsenceGroup" style="top: '+b+"px; height:"+d+'px;">';a+="</div>";g=Ext.DomHelper.insertFirst(m,a,true);g.on("mousedown",p);var t=this.createAbsenceTooltip(g,s[k]);iacv.tooltips.push(t.id);g.setOpacity(s[k].isAccepted?0.5:0.2);}}}}}}},cleanAbsences:function(){Ext.select("div.iacvAbsence").each(function(c,a,b){c.remove();});Ext.select("div.iacvAbsenceMonth").each(function(c,a,b){c.remove();});Ext.select("div.iacvAbsenceGroup").each(function(c,a,b){c.remove();});},createAbsenceTooltipContent:function(d){var b=Date.parseDate(d.start,"U");var a=Date.parseDate(d.stop,"U");var c='<div class="iacvYearEventRecap">';if(!d.hidden){c+="<b>"+d.type+"</b><br/>";c+=d.notes?("Notes : "+d.notes+"<br/>"):"";}c+="Du "+b.format("d/m/Y")+" à "+b.format("H:i");c+=" au "+a.format("d/m/Y")+" à "+a.format("H:i")+"<br/>";c+="<b>"+(d.isAccepted?"Acceptée":"En attente de validation")+"</b>";c+="</div>";return c;},createAbsenceTooltip:function(f,e){var b=Date.parseDate(e.start,"U");var a=Date.parseDate(e.stop,"U");var c='<div class="tooltipContent">';c+='<h1 style="background-image: url(img/icons/weather_sun.png)">';c+="Détail de l'absence</h1>";c+='<div class="iacvYearEventRecap">';if(!e.hidden){c+="<b>"+e.type+"</b><br/>";c+=e.notes?("Notes : "+e.notes+"<br/>"):"";}c+="Du "+b.format("d/m/Y")+" à "+b.format("H:i");c+=" au "+a.format("d/m/Y")+" à "+a.format("H:i")+"<br/>";c+="<b>"+(e.isAccepted?"Acceptée":"En attente de validation")+"</b>";c+="</div>";c+="</div>";var d=new Ext.ToolTip({target:f,width:300,height:200,autoScroll:true,html:c,baseCls:"iacvTooltip"});return d;}};var InnoAgendaCalendarView=function(){return{panel:null,viewType:"week",date:0,events:[],selectedEventId:null,selectedEventYOffset:0,menuSelectedEventId:null,quarterHeight:10,who:{type:null,id:null,name:null},whoType:"user",resize:false,create:false,formAction:"create",eventRecordType:Ext.data.Record.create([{name:"id"},{name:"start",type:"date",dateFormat:"U"},{name:"stop",type:"date",dateFormat:"U"},{name:"type"},{name:"place"},{name:"contact"},{name:"who",mapping:"owner"},{name:"repeat"},{name:"link"},{name:"title"},{name:"linkedUsers"},{name:"comment"},{name:"isPrivate"},{name:"lastmod"},{name:"resource"},{name:"hidden"},{name:"purpose"},{name:"color"}]),current:0,start:0,stop:0,lastmod:0,mask:null,mouseDownPos:{x:0,y:0},goForDD:false,scroll:false,tooltips:[],eventLogoWidthLimit:800,groupDayWidthLimit:170,initPanel:function(){this.panel=new Ext.Panel({id:"InnoAgendaPanel",region:"center",margins:"5 5 5 0",layout:"fit",tbar:[{xtype:"tbbutton",id:"viewNewEvent",text:"Nouvel événement",cls:"x-btn-text-icon",icon:"img/icons/calendar_add.png",handler:function(){this.newEvent();}.createDelegate(this),tooltip:"Créer un nouvel événement"},{xtype:"tbbutton",id:"viewNewReservation",text:"Réservation externe",cls:"x-btn-text-icon",icon:"img/icons/image_add.png",handler:function(){this.newReservation();}.createDelegate(this),tooltip:"Réserver une ressource pour un tiers"},"|",{xtype:"tbbutton",text:"Actualiser",cls:"x-btn-text-icon",icon:"img/icons/arrow_rotate_clockwise.png",handler:function(){this.initView();}.createDelegate(this),tooltip:"Actualiser la vue"},"|",{xtype:"tbbutton",cls:"x-btn-icon",icon:"img/icons/bullet_arrow_top.png",handler:function(){iacv.scrollToHour(0);}.createDelegate(this),tooltip:"Remonter jusqu'à minuit"},{xtype:"tbbutton",cls:"x-btn-icon",icon:"img/icons/bullet_arrow_bottom.png",handler:function(){iacv.scrollToHour(24);}.createDelegate(this),tooltip:"Descendre jusqu'à minuit"},"->","Afficher la vue par : ",{id:"viewTypeChooserDay",xtype:"tbbutton",enableToggle:true,toggleGroup:"view",text:"Jour",cls:"x-btn-text-icon",icon:"img/icons/calendar_view_day.png",handler:function(){this.mask.show();new Ext.util.DelayedTask(function(){this.setViewType("day");},this).delay(10);}.createDelegate(this)},{id:"viewTypeChooserWeek",xtype:"tbbutton",enableToggle:true,toggleGroup:"view",text:"Semaine",pressed:true,cls:"x-btn-text-icon",icon:"img/icons/calendar_view_week.png",handler:function(){this.mask.show();new Ext.util.DelayedTask(function(){this.setViewType("week");},this).delay(10);}.createDelegate(this)},{id:"viewTypeChooserMonth",xtype:"tbbutton",enableToggle:true,toggleGroup:"view",text:"Mois",cls:"x-btn-text-icon",icon:"img/icons/calendar_view_month.png",handler:function(){this.mask.show();new Ext.util.DelayedTask(function(){this.setViewType("month");},this).delay(10);}.createDelegate(this)},{id:"viewTypeChooserYear",xtype:"tbbutton",enableToggle:true,toggleGroup:"view",text:"Année",cls:"x-btn-text-icon",disabled:true,icon:"img/icons/calendar_view_year.png",handler:function(){this.mask.show();new Ext.util.DelayedTask(function(){this.setViewType("year");},this).delay(10);}.createDelegate(this)}]});this.storeInit();this.panel.on("resize",this.panelResize,this);this.panel.on("contextmenu",function(a){a.stopEvent();});Ext.getBody().on("mouseup",this.panelMouseUp,this);this.mask=new Ext.LoadMask(Ext.getBody(),{msg:"Veuillez patienter..."});return this.panel;},initView:function(g){this.mask.show();var c=Ext.getCmp("viewNewEvent");var f=Ext.getCmp("iacvMenuNewevent");switch(this.whoType){case"resource":case"resources":c.disable();f.disable();break;case"user":if(innoAgenda.Permissions[this.who.id].writeAgenda){c.enable();f.enable();}else{c.disable();f.disable();}break;case"group":var b=false;for(var e=0;e<this.who.users.length;++e){if(innoAgenda.Permissions[this.who.users[e].id].writeAgenda){b=true;}}if(b){c.enable();f.enable();}else{c.disable();f.disable();}break;case"view":var b=false;for(var e=0;e<this.who.users.length;++e){if(this.who.users[e].type=="user"&&innoAgenda.Permissions[this.who.users[e].id].writeAgenda){b=true;}}if(b){c.enable();f.enable();}else{c.disable();f.disable();}break;}for(var d=0;d<this.tooltips.length;d++){if(Ext.getCmp(this.tooltips[d].id)){Ext.getCmp(this.tooltips[d].id).remove();}}this.tooltips=[];this.current=(g)?g:this.current;this.scroll=(this.scroll===false)?this.hourToPixel(7,30):this.scroll;var a=0;if(Ext.get("innoagendaPanelTableContainer")){a=Ext.get("innoagendaPanelTableContainer").getScroll().top;}this.scroll=(a>0)?a:this.scroll;switch(this.whoType){case"resource":case"user":Ext.getCmp("viewTypeChooserYear").enable();switch(this.viewType){case"month":Ext.getCmp("viewTypeChooserMonth").toggle(true);this.initMonthView(this.current);break;case"day":Ext.getCmp("viewTypeChooserDay").toggle(true);this.initDayView(this.current);break;case"year":Ext.getCmp("viewTypeChooserYear").toggle(true);this.initYearView(this.current);break;case"week":default:Ext.getCmp("viewTypeChooserWeek").toggle(true);this.initWeekView(this.current);}break;case"resources":case"group":case"view":Ext.getCmp("viewTypeChooserYear").disable();switch(this.viewType){case"month":case"year":this.viewType="month";Ext.getCmp("viewTypeChooserMonth").toggle(true);this.initMonthGroupView(this.current);break;case"day":Ext.getCmp("viewTypeChooserDay").toggle(true);this.initDayGroupView(this.current);break;case"week":default:Ext.getCmp("viewTypeChooserWeek").toggle(true);this.initWeekGroupView(this.current);}break;}Ext.get("innoagendaPanelTableContainer").scrollTo("top",this.scroll,false);},initDayView:function(c){this.current=(c)?c:this.current;debug("Fx: 'initDayView'",4);this.viewType="day";var s=new Date();var a=(!c)?s:new Date.parseDate(this.current,"U");this.start=a.clearTime().format("U");this.stop=a.add(Date.DAY,1).clearTime().format("U");var t=parseInt(Ext.util.Format.date(a,"w"),10);t=(t==0)?7:t;var m=a;var r=a.format("Y_m_d")+"_00_00_00";var l=a.add(Date.DAY,1).format("Y_m_d")+"_00_00_00";var f=Date.parseDate(r,"Y_m_d_h_i_s");var u=Date.parseDate(l,"Y_m_d_h_i_s");var b=Ext.ux.DatePickerPlus.prototype.nationalHolidays(f.format("Y"));daylabel=m.format("l")+" "+m.format("d F Y")+"</b>";var p=new StringBuffer();p.append('<div id="innoagendaPanelTopContainer">');p.append('<div class="iacvTop">');p.append('<div class="iacvWho">');p.append('<div class="iacvWhoText" style="background-image:url('+this.whoImg+')">'+this.who.name+"</div>");p.append("</div>");p.append('<div class="iacvWhen">');p.append('<div class="iacvDatePrev" onclick="iacv.initView('+a.add(Date.DAY,-1).format("U")+')"></div>');p.append('<div class="iacvWhenText">'+daylabel+"</div>");p.append('<div class="iacvDateNext" onclick="iacv.initView('+a.add(Date.DAY,1).format("U")+')"></div>');p.append("</div>");p.append("</div>");p.append('<table class="innoagendaPanelTable" id="innoagendaPanelTableTop" cellpadding="0" cellspacing="0" >');p.append("<tr>");p.append('<td class="innoagendaCalendarViewContentHoursTop">&nbsp;</td>');p.append('<td><table class="innoagendaCalendarViewContentLabelTable" cellpadding="0" cellspacing="0"><tr>');daylabel='<span class="iacvWhenDay">'+daylabel+"</span>";p.append('<td id="iacvWeekDayLabel_'+m.format("Y_m_d")+'" class="innoagendaPanelHeaders">');p.append(daylabel);p.append("</td>");p.append("</tr>");p.append('</table></td><td style="width: 18px;" class="innoagendaCalendarTopScrollbarSpacer">&nbsp;</td></tr></table></div>');p.append('<div id="innoagendaPanelTableContainer" class="innoagendaPanelTableContainer">');p.append('<table class="innoagendaPanelTable" id="innoagendaPanelTable" cellpadding="0" cellspacing="0" >');p.append("<tr>");p.append('<td class="innoagendaCalendarViewContentHours">&nbsp;</td>');p.append('<td><table class="innoagendaCalendarViewContentTable" id="innoagendaCalendarViewContentTable" cellpadding="0" cellspacing="0"><tr>');var n="iacv_day_"+Ext.util.Format.date(m,"Y_m_d");p.append('<td class="innoagendaPanelWeekDay"');if(this.whoType!="resource"&&this.whoType!="resources"){var o=m.format("w");var g=[];var k=0;for(var e=0;e<innoAgenda.Prefs[this.who.id].activeSlots.length;++e){if(innoAgenda.Prefs[this.who.id].activeSlots[e].day==o){currentSlot=innoAgenda.Prefs[this.who.id].activeSlots[e];g[k]={begin:currentSlot.begin,end:currentSlot.end};k++;}}}else{g=DEFAULT_RESOURCE_SLOTS;if(m.format("w")==0||m.format("w")==6){g=[];}}for(var q=0;q<b.length;q++){if(m.format("d/m/Y")==b[q].date.format("d/m/Y")){g=[];}}var d=IACV_SERVER_URL+"bg.php?slots="+encodeURIComponent(Ext.util.JSON.encode(g));if(!innoAgenda.Permissions[this.who.id].readAgenda){d=IACV_SERVER_URL+"bg.php?auth=0";}if(d){p.append(' style="background-image: url('+d+')"');}p.append('><div class="innoagendaPanelWeekDayContainer'+(innoAgenda.Permissions[this.who.id].writeAgenda?"":" innoagendaUnauthorized")+'" id="'+n+'">');p.append("</div></td>");p.append("</tr></table></td></tr></table></div>");this.panel.body.dom.innerHTML=p.toString();this.panelResize(this.panel);Ext.get("iacvWeekDayLabel_"+m.format("Y_m_d")).on("contextmenu",this.dayContextMenu.createDelegate(this));Ext.get("innoagendaCalendarViewContentTable").on("contextmenu",this.tableContextMenu.createDelegate(this));this.panel.body.on("mousemove",this.panelMouseMove,this);Ext.get("innoagendaCalendarViewContentTable").on("mousedown",this.tableMouseDown.createDelegate(this));Ext.get("innoagendaCalendarViewContentTable").on("mouseover",this.tableMouseOver.createDelegate(this));whenDatePicker.maxSelectionDays=1;whenDatePicker.clearSelectedDates();whenDatePicker.setSelectedDates([m]);whenDatePicker.setValue(a);this.loadNotes();this.loadEvents();innoAgenda.Calendar.Absence.loadAbsences();this.panel.body.unselectable();this.panelResize(this.panel);},initWeekView:function(c){this.current=(c)?c:this.current;debug("Fx: 'initWeekView'",4);this.viewType="week";var q=0;var t=new Date();var a=(!c)?t:new Date.parseDate(this.current,"U");var u=parseInt(a.format("w"),10);u=(u==0)?7:u;var s=a.add(Date.DAY,-(u-1)).format("Y_m_d")+"_00_00_00";var l=a.add(Date.DAY,8-u).format("Y_m_d")+"_00_00_00";var f=Date.parseDate(s,"Y_m_d_h_i_s");var v=Date.parseDate(l,"Y_m_d_h_i_s");this.start=f.clearTime().format("U");this.stop=v.clearTime().format("U");var b=Ext.ux.DatePickerPlus.prototype.nationalHolidays(f.format("Y"));var m=a.add(Date.DAY,-(u-1));var p=new StringBuffer();p.append('<div id="innoagendaPanelTopContainer">');p.append('<div class="iacvTop">');p.append('<div class="iacvWho">');p.append('<div class="iacvWhoText" style="background-image:url('+this.whoImg+')">'+this.who.name+"</div>");p.append("</div>");p.append('<div class="iacvWhen">');p.append('<div class="iacvDatePrev" onclick="iacv.initView('+a.add(Date.DAY,-7).format("U")+')"></div>');p.append('<div class="iacvWhenText">Semaine '+a.format("W")+" - année "+a.format("Y")+"</div>");p.append('<div class="iacvDateNext" onclick="iacv.initView('+a.add(Date.DAY,7).format("U")+')"></div>');p.append("</div>");p.append("</div>");p.append('<table class="innoagendaPanelTable" id="innoagendaPanelTableTop" cellpadding="0" cellspacing="0" >');p.append("<tr>");p.append('<td class="innoagendaCalendarViewContentHoursTop">&nbsp;');p.append('</td><td id=iacvContentLabelTableTd""><table class="innoagendaCalendarViewContentLabelTable" cellpadding="0" cellspacing="0"><tr>');for(q=0;q<7;q++){if(!innoAgenda.Prefs[this.who.id]||innoAgenda.Prefs[this.who.id].workingDays.indexOf(q)!=-1){daylabel=Ext.util.Format.date(m,"l")+"<br/><b>"+Ext.util.Format.date(m,"d/m")+"</b>";if(Ext.util.Format.date(t,"d/m/Y")==Ext.util.Format.date(m,"d/m/Y")){daylabel='<span style="color:#F00;font-weight:bold">'+daylabel+"</span>";}p.append('<td id="iacvWeekDayLabel_'+m.format("Y_m_d")+'" class="innoagendaPanelHeaders">');p.append(daylabel+"</td>");}m=m.add(Date.DAY,1);}p.append("</tr>");p.append('</table></td><td style="width: 18px;" class="innoagendaCalendarTopScrollbarSpacer">&nbsp;</td></tr></table></div>');p.append('<div id="innoagendaPanelTableContainer" class="innoagendaPanelTableContainer" style="visibility:hidden">');p.append('<table class="innoagendaPanelTable" id="innoagendaPanelTable" cellpadding="0" cellspacing="0" >');p.append("<tr>");p.append('<td class="innoagendaCalendarViewContentHours">&nbsp;</td>');p.append('<td><table class="innoagendaCalendarViewContentTable" id="innoagendaCalendarViewContentTable" cellpadding="0" cellspacing="0"><tr>');dates=new Array();m=m.add(Date.DAY,-7);for(q=0;q<7;q++){if(!innoAgenda.Prefs[this.who.id]||innoAgenda.Prefs[this.who.id].workingDays.indexOf(q)!=-1){dates.push(m);var n="iacv_day_"+Ext.util.Format.date(m,"Y_m_d");p.append('<td class="innoagendaPanelWeekDay"');var o=m.format("w");o=(o==0)?7:o;var g=[];if(this.whoType!="resource"&&this.whoType!="resources"){var k=0;for(var e=0;e<innoAgenda.Prefs[this.who.id].activeSlots.length;++e){if(innoAgenda.Prefs[this.who.id].activeSlots[e].day==o){currentSlot=innoAgenda.Prefs[this.who.id].activeSlots[e];g[k]={begin:currentSlot.begin,end:currentSlot.end};k++;}}}else{g=DEFAULT_RESOURCE_SLOTS;if(m.format("w")==0||m.format("w")==6){g=[];}}for(var r=0;r<b.length;r++){if(m.format("d/m/Y")==b[r].date.format("d/m/Y")){g=[];}}var d=IACV_SERVER_URL+"bg.php?slots="+encodeURIComponent(Ext.util.JSON.encode(g));if(!innoAgenda.Permissions[this.who.id].readAgenda){d=IACV_SERVER_URL+"bg.php?auth=0";}if(d){p.append(' style="background-image: url('+d+')"');}p.append('><div class="innoagendaPanelWeekDayContainer'+(innoAgenda.Permissions[this.who.id].writeAgenda?"":" innoagendaUnauthorized")+'" id="'+n+'">');p.append("</div></td>");}m=m.add(Date.DAY,1);}p.append("</tr></table></td></tr></table></div>");this.panel.body.dom.innerHTML=p;this.panelResize(this.panel);m=m.add(Date.DAY,-7);for(q=0;q<7;q++){if(!innoAgenda.Prefs[this.who.id]||innoAgenda.Prefs[this.who.id].workingDays.indexOf(q)!=-1){n="iacvWeekDayLabel_"+m.format("Y_m_d");Ext.get(n).on("contextmenu",this.weekContextMenu.createDelegate(this));}m=m.add(Date.DAY,1);}Ext.get("innoagendaCalendarViewContentTable").on("contextmenu",this.tableContextMenu.createDelegate(this));this.panel.body.on("mousemove",this.panelMouseMove,this);Ext.get("innoagendaCalendarViewContentTable").on("mousedown",this.tableMouseDown.createDelegate(this));Ext.get("innoagendaCalendarViewContentTable").on("mouseover",this.tableMouseOver.createDelegate(this));whenDatePicker.maxSelectionDays=7;whenDatePicker.clearSelectedDates();whenDatePicker.setSelectedDates(dates);whenDatePicker.setValue(a);Ext.get("innoagendaPanelTableContainer").dom.style.visibility="visible";this.loadNotes();this.loadEvents();innoAgenda.Calendar.Absence.loadAbsences();this.panel.body.unselectable();},initMonthView:function(f){this.current=f?f:this.current;this.viewType="month";var y=new Date();var z=0;var b=this.current?new Date.parseDate(this.current,"U"):y;var r=b.getLastDateOfMonth();var u=parseInt(b.format("j"),10);var B=parseInt(b.format("m"),10);var n=parseInt(b.format("Y"),10);var e=Ext.ux.DatePickerPlus.prototype.nationalHolidays(n);var g=b.add(Date.DAY,-u);var a=b.format("t");var A=parseInt(g.format("w"),10);A=(A==0)?7:A;var o=g.add(Date.DAY,-(A-1));var x=o;this.start=o.clearTime().format("U");this.stop=o.add(Date.DAY,42).clearTime().format("U");var l=[];var s=new StringBuffer();s.append('<div id="innoagendaPanelTopContainer">');s.append('<div class="iacvTop">');s.append('<div class="iacvWho">');s.append('<div class="iacvWhoText" style="background-image:url('+this.whoImg+')">'+this.who.name+"</div>");s.append("</div>");s.append('<div class="iacvWhen">');s.append('<div class="iacvDatePrev" onclick="iacv.initView('+b.add(Date.MONTH,-1).format("U")+')"></div>');s.append('<div class="iacvWhenText">'+b.format("F Y")+"</div>");s.append('<div class="iacvDateNext" onclick="iacv.initView('+b.add(Date.MONTH,1).format("U")+')"></div>');s.append("</div>");s.append("</div>");s.append('<table class="innoagendaPanelTable" id="innoagendaPanelTableTop" cellpadding="0" cellspacing="0" >');s.append("<tr>");for(z=0;z<=7;z++){if(z==0){s.append('<td class="innoagendaPanelHeaders" style="width: 70px;">&nbsp;</td>');continue;}var C=(z==7?0:z);s.append('<td class="innoagendaPanelHeaders" style="font-weight:bold">'+Date.dayNames[C]+"</td>");}s.append("</tr></table>");s.append("</div>");s.append('<div id="innoagendaPanelTableContainer" class="innoagendaPanelTableContainer" style="visibility:hidden;background-color: #e8edf6;">');s.append('<table cellspacing="0" cellpadding="0" class="iacvMonthTable" id="iacvMonthTable">');for(var m=0;m<6;m++){s.append('<tr id="iacvMonthTableContent_'+m+'_days" >');s.append('<th id="iacvMonthViewWeek_'+o.format("W")+'" class="iacvMonthViewWeek" rowspan="2">'+parseInt(o.format("W"),10)+"</th>");for(z=0;z<7;z++){var c="iacvDayTop_"+o.format("Y_m_d");if(b.format("m")==o.format("m")){s.append('<td class="iacvMonthDayTop ">');s.append('<div class="iacvMonthZoom" id="'+c+'"></div>');s.append('<div id="iacvMonthNoteP_'+o.format("Y_m_d")+'"></div>');s.append(o.format("j")+"</td>");}else{s.append('<td class="iacvMonthDayTop iacvMonthDayTopOther" id="'+c+'">');s.append('<div id="iacvMonthNoteP_'+o.format("Y_m_d")+'"></div>');s.append(o.format("j")+"</td>");}o=o.add(Date.DAY,1);}s.append("</tr>");o=o.add(Date.DAY,-7);s.append('<tr id="iacvMonthTableContent_'+m+'" >');for(z=0;z<7;z++){c="iacv_day_td_"+Ext.util.Format.date(o,"Y_m_d");var q="iacv_day_"+Ext.util.Format.date(o,"Y_m_d");if(b.format("m")==o.format("m")){s.append('<td id="'+c+'" class="iacvMonthViewDay');if(o.format("w")==0||o.format("w")==6){s.append(" iacvMonthDayHoliday");}else{for(var v=0;v<e.length;v++){if(o.format("d/m/Y")==e[v].date.format("d/m/Y")){s.append(" iacvMonthDayHoliday");}}}s.append('">');l.push(o);}else{s.append('<td id="'+c+'" class="iacvOtherMonthViewDay">');}s.append('<div id="'+q+'" class="iacvMonthDay"></div>');s.append("</td>");o=o.add(Date.DAY,1);}s.append("</tr>");}s.append("</table></div>");this.panel.body.dom.innerHTML=s.toString();this.panel.body.unselectable();Ext.get("iacvMonthTable").on("contextmenu",this.tableContextMenu.createDelegate(this));this.panelResize(this.panel);o=x;var p;for(t=0;t<6;t++){p="iacvMonthViewWeek_"+o.format("W");Ext.get(p).on("click",function(w,D,d){this.setWhen(d.timestamp,d.viewType);},this,{viewType:"week",timestamp:o.format("U")});var k=new Ext.ToolTip({target:p,html:"Cliquez ici, pour afficher<br/>la semaine <b>"+o.format("W")+"</b>",dismissDelay:0,showDelay:0,hideDelay:0});this.tooltips.push(k.id);o=o.add(Date.DAY,7);}o=g.add(Date.DAY,1);for(var t=0;t<a;t++){c="iacvDayTop_"+o.format("Y_m_d");Ext.get(c).on("click",function(w,D,d){this.setWhen(d.timestamp,d.viewType);},this,{viewType:"day",timestamp:o.format("U")});var k=new Ext.ToolTip({target:c,html:"Cliquez ici, pour afficher<br/>le <b>"+o.format("d/m/Y")+"</b>",dismissDelay:0,showDelay:0,hideDelay:0});this.tooltips.push(k.id);o=o.add(Date.DAY,1);}whenDatePicker.clearSelectedDates();whenDatePicker.setSelectedDates(l);whenDatePicker.setValue(b);Ext.get("innoagendaPanelTableContainer").dom.style.visibility="visible";this.loadNotes();this.loadEvents();innoAgenda.Calendar.Absence.loadAbsences();},initYearView:function(k){this.current=k?k:this.current;this.viewType="year";var o=new Date();var q=this.start?(this.current?Date.parseDate(this.current,"U"):new Date()):o;var p=parseInt(q.format("j"),10);var g=parseInt(q.format("m"),10);var n=parseInt(q.format("Y"),10);var r=n+"-1-1";var a=Date.parseDate(r,"Y-n-j");var c=Ext.ux.DatePickerPlus.prototype.nationalHolidays(n);startDate=a.clearTime();stopDate=a.add(Date.YEAR,1).clearTime();this.start=startDate.format("U");this.stop=stopDate.format("U");var f=new StringBuffer();f.append('<div id="innoagendaPanelTopContainer">');f.append('<div class="iacvTop">');f.append('<div class="iacvWho">');f.append('<div class="iacvWhoText" style="background-image:url('+this.whoImg+')">'+this.who.name+"</div>");f.append("</div>");f.append('<div class="iacvWhen">');f.append('<div class="iacvDatePrev" onclick="iacv.initView(');f.append(q.add(Date.YEAR,-1).format("U"));f.append(')"></div>');f.append('<div class="iacvWhenText">');f.append(q.format("Y"));f.append("</div>");f.append('<div class="iacvDateNext" onclick="iacv.initView(');f.append(q.add(Date.YEAR,1).format("U"));f.append(')"></div>');f.append("</div>");f.append("</div>");f.append('<table cellspacing="0" cellpadding="0" id="iacvYearTableHeaders"><tr>');for(var b=1;b<=12;b++){f.append("<td>");r=n+"-"+b+"-1";a=Date.parseDate(r,"Y-n-j");daysCount=parseInt(a.format("t"),10);id="iacvYearMonth_"+a.format("Y_m");f.append('<div id="');f.append(id);f.append('" class="innoagendaPanelHeaders" style="line-height: 30px;font-weight:bold">');f.append(a.format("F"));f.append("</div>");f.append("</td>");}f.append("</tr></table></div>");f.append('<div id="innoagendaPanelTableContainer" class="innoagendaPanelTableContainer" style="background-color: #e8edf6;">');f.append('<table cellspacing="0" cellpadding="0" id="iacvYearTable"><tr>');for(b=1;b<=12;b++){f.append("<td>");daysCount=parseInt(a.format("t"),10);for(var l=1;l<=daysCount;l++){a=Date.parseDate(n+"-"+b+"-"+l,"Y-n-j");f.append('<div id="iacvYearDay_');f.append(a.format("Y_m_d"));f.append('" class="iacvYearDay"');if(a.format("w")==0||a.format("w")==6){f.append(' style="background-color: #EEEEEE"');}else{for(var e=0;e<c.length;e++){if(a.format("d/m/Y")==c[e].date.format("d/m/Y")){f.append(' style="background-color: #EEEEEE"');}}}f.append(">");if(a.format("w")==1){id="iacvYearWeek_"+a.format("W_Y");f.append('<div id="');f.append(id);f.append('" class="labelWeek">');f.append(parseInt(a.format("W"),10));f.append("</div>");}f.append('<div class="labelDayName">');f.append(a.format("D").substr(0,1));f.append('</div><div class="labelDay">');f.append(a.format("j"));f.append("</div></div>");a=a.add(Date.DAY,1);}f.append("</td>");}f.append("</tr></table></div>");this.panel.body.dom.innerHTML=f.toString();this.panelResize(this.panel);a=startDate;while(a.format("U")<stopDate.format("U")){id="iacvYearMonth_"+a.format("Y_m");Ext.get(id).on("click",function(m,s,d){this.setWhen(d.timestamp,d.viewType);},this,{viewType:"month",timestamp:a.format("U")});tooltip=new Ext.ToolTip({target:id,html:"Cliquez ici, pour afficher<br/>le mois de <b>"+a.format("F Y")+"</b>",dismissDelay:0});this.tooltips.push(tooltip.id);a=a.add(Date.MONTH,1);}a=startDate;while(a.format("U")<stopDate.format("U")){id="iacvYearDay_"+a.format("Y_m_d");Ext.get(id).on("click",function(m,s,d){this.setWhen(d.timestamp,d.viewType);},this,{viewType:"day",timestamp:a.format("U")});a=a.add(Date.DAY,1);}this.loadEvents();innoAgenda.Calendar.Absence.loadAbsences();},initDayGroupView:function(c){this.current=(c)?c:this.current;debug("Fx: 'initWeekView'",4);this.viewType="day";var e=this.who.users.length;var A=new Date().clearTime();var a=(!c)?A:new Date.parseDate(this.current,"U").clearTime();this.start=a.clearTime().format("U");this.stop=a.clearTime().add(Date.DAY,1).format("U");var B=parseInt(Ext.util.Format.date(a,"w"),10);B=(B==0)?7:B;var s=a;var z=a.format("Y_m_d")+"_00_00_00";var p=a.add(Date.DAY,1).format("Y_m_d")+"_00_00_00";var m=Date.parseDate(z,"Y_m_d_h_i_s");var D=Date.parseDate(p,"Y_m_d_h_i_s");var b=Ext.ux.DatePickerPlus.prototype.nationalHolidays(m.format("Y"));daylabel=Ext.util.Format.date(s,"l")+" "+Ext.util.Format.date(s,"d F Y")+"</b>";var w=new StringBuffer();w.append('<div id="innoagendaPanelTopContainer">');w.append('<div class="iacvTop">');w.append('<div class="iacvWho">');w.append('<div class="iacvWhoText" style="background-image:url('+this.whoImg+')">'+this.who.name+"</div>");w.append("</div>");w.append('<div class="iacvWhen">');w.append('<div class="iacvDatePrev" onclick="iacv.initView('+a.add(Date.DAY,-1).format("U")+')"></div>');w.append('<div class="iacvWhenText">'+daylabel+"</div>");w.append('<div class="iacvDateNext" onclick="iacv.initView('+a.add(Date.DAY,1).format("U")+')"></div>');w.append("</div>");w.append("</div>");w.append('<table class="innoagendaPanelTable" id="innoagendaPanelTableTop" cellpadding="0" cellspacing="0" >');w.append("<tr>");w.append('<td><div id="iacvDayGroupName" style="overflow:hidden">');w.append('<table id="innoagendaCalendarViewContentLabelTable" class="innoagendaCalendarViewContentLabelTable" cellpadding="0" cellspacing="0"><tr><td class="innoagendaCalendarViewContentHoursTop">&nbsp;</td>');for(x=0;x<e;x++){switch(this.whoType){case"view":case"group":t=this.who.users[x].id;break;case"resources":t=this.who.users[x].dbId;break;}w.append('<td class="innoagendaPanelHeaders" id="iacvWeekGroupUser_'+t+'" style="text-align: left;"><div style="overflow: hidden; width: 300;">');w.append('<div class="iacvGroupViewUserAvatar24" style="float:left;');if(this.who.users[x].type=="resource"){if(this.who.users[x].photo=="1"){w.append("background: #FFFFFF url(img/resources/"+this.who.users[x].dbId+"_24.png?nocache"+Math.random()+") no-repeat 0px 0px;");}else{w.append("background-image: url(img/default_resource_24.png)");}}else{if(this.who.users[x].photo){w.append("background: #FFFFFF url(img/avatars/"+this.who.users[x].id+"_24.png?nocache"+Math.random()+") no-repeat 0px 0px;");}}w.append('"></div>');w.append('<div class="userName24">'+this.who.users[x].name+"</div>");w.append("</div></td>");}w.append("</tr>");w.append('</table></div></td><td style="width: 18px;" class="innoagendaCalendarTopScrollbarSpacer">&nbsp;</td></tr></table></div>');w.append('<div id="innoagendaPanelTableContainer" class="innoagendaPanelTableContainer">');w.append('<table class="innoagendaPanelTable" id="innoagendaPanelTable" cellpadding="0" cellspacing="0" >');w.append("<tr>");w.append('<td class="innoagendaCalendarViewContentHours">&nbsp;</td>');w.append('<td><table class="innoagendaCalendarViewContentTable" id="innoagendaCalendarViewContentTable" cellpadding="0" cellspacing="0"><tr>');for(x=0;x<e;x++){var r=false,q=false;var u=s.format("w");u=(u==0)?7:u;var n=[];var t;switch(this.whoType){case"view":t=this.who.users[x].id;if(innoAgenda.Permissions[t].readAgenda){if(this.who.users[x].type=="user"){var o=0;for(var k=0;k<innoAgenda.Prefs[this.who.users[x].id].activeSlots.length;++k){if(innoAgenda.Prefs[this.who.users[x].id].activeSlots[k].day==u){var v=innoAgenda.Prefs[this.who.users[x].id].activeSlots[k];n[o]={begin:v.begin,end:v.end};o++;}}}else{n=DEFAULT_RESOURCE_SLOTS;if(s.format("w")==0||s.format("w")==6){n=[];}}r=true;}if(innoAgenda.Permissions[t].writeAgenda){q=true;}break;case"group":t=this.who.users[x].id;if(innoAgenda.Permissions[t].readAgenda){var o=0;for(var k=0;k<innoAgenda.Prefs[this.who.users[x].id].activeSlots.length;++k){if(innoAgenda.Prefs[this.who.users[x].id].activeSlots[k].day==u){var v=innoAgenda.Prefs[this.who.users[x].id].activeSlots[k];n[o]={begin:v.begin,end:v.end};o++;}}r=true;}if(innoAgenda.Permissions[t].writeAgenda){q=true;}break;case"resources":t=this.who.users[x].dbId;n=DEFAULT_RESOURCE_SLOTS;if(s.format("w")==0||s.format("w")==6){n=[];}if(innoAgenda.Permissions[t].readAgenda){r=true;}if(innoAgenda.Permissions[t].writeAgenda){q=true;}break;}for(var y=0;y<b.length;y++){if(s.format("d/m/Y")==b[y].date.format("d/m/Y")){n=[];}}var d=IACV_SERVER_URL+"bg.php?slots="+encodeURIComponent(Ext.util.JSON.encode(n));var g="iacv_day_"+Ext.util.Format.date(s,"Y_m_d")+"_"+t;w.append('<td class="innoagendaPanelWeekDay"');if(!r){d=IACV_SERVER_URL+"bg.php?auth=0";}if(d){w.append(' style="background-image: url('+d+')"');}w.append('><div class="innoagendaPanelWeekDayContainer'+(q?"":" innoagendaUnauthorized")+'" id="'+g+'">');w.append("</div></td>");}w.append("</tr></table></td></tr></table></div>");whenDatePicker.maxSelectionDays=1;whenDatePicker.clearSelectedDates();whenDatePicker.setSelectedDates([s]);whenDatePicker.setValue(a);this.panel.body.dom.innerHTML=w.toString();this.panelResize(this.panel);for(var x=0;x<e;x++){var C=this.who.users[x];switch(this.whoType){case"group":t=C.id;name=C.name;type="user";fromview=false;break;case"view":t=C.id;name=C.name;type=C.type;fromview=true;break;case"resources":t=C.dbId;name=C.name;type="resource";fromview=false;break;}var l="iacvWeekGroupUser_"+t;Ext.get(l).on("click",function(F,G,E){if(innoAgenda.Permissions[E.id].readAgenda){this.setWhoAndWhen(E.type,E.who,E.timestamp,fromview);}else{Ext.Msg.show({title:"Erreur",buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR,msg:"Vous n'avez pas la permission d'accéder à l'agenda de "+E.who.name+"."});}},this,{type:type,who:this.who.users[x],timestamp:this.current,id:t});var f=new Ext.ToolTip({target:l,html:"Cliquez ici, pour afficher<br/>la vue quotidienne de <br/><b>"+C.name+"</b>",dismissDelay:0});this.tooltips.push(f.id);}Ext.get("innoagendaCalendarViewContentTable").on("contextmenu",this.tableContextMenu.createDelegate(this));Ext.get("innoagendaCalendarViewContentTable").on("mousedown",this.tableMouseDown.createDelegate(this));Ext.get("innoagendaCalendarViewContentTable").on("mouseover",this.tableMouseOver.createDelegate(this));this.panel.body.on("mousemove",this.panelMouseMove.createDelegate(this));if(this.store){this.store.clearFilter();this.loadEvents();innoAgenda.Calendar.Absence.loadAbsences();}this.panel.body.unselectable();},initWeekGroupView:function(c){this.current=(c)?c:this.current;debug("Fx: 'initWeekView GROUP'",4);this.viewType="week";var e=this.who.users.length;var u=0;var y=new Date().clearTime();var a=(!c)?y:new Date.parseDate(this.current,"U");var z=parseInt(Ext.util.Format.date(a,"w"),10);z=(z==0)?7:z;var x=a.add(Date.DAY,-(z-1)).format("Y_m_d")+"_00_00_00";var o=a.add(Date.DAY,8-z).format("Y_m_d")+"_00_00_00";var m=Date.parseDate(x,"Y_m_d_h_i_s");var D=Date.parseDate(o,"Y_m_d_h_i_s");var b=Ext.ux.DatePickerPlus.prototype.nationalHolidays(m.format("Y"));var q=a.add(Date.DAY,-(z-1));var w=q;this.start=q.clearTime().format("U");this.stop=q.clearTime(true).add(Date.DAY,7).format("U");var s=new StringBuffer();s.append('<div id="innoagendaPanelTopContainer">');s.append('<div class="iacvTop">');s.append('<div class="iacvWho">');s.append('<div class="iacvWhoText" style="background-image:url('+this.whoImg+')">'+this.who.name+"</div>");s.append("</div>");s.append('<div class="iacvWhen">');s.append('<div class="iacvDatePrev" onclick="iacv.initView('+a.add(Date.DAY,-7).format("U")+')"></div>');s.append('<div class="iacvWhenText">Semaine '+a.format("W")+" - année "+a.format("Y")+"</div>");s.append('<div class="iacvDateNext" onclick="iacv.initView('+a.add(Date.DAY,7).format("U")+')"></div>');s.append("</div>");s.append("</div>");s.append('<table class="innoagendaPanelTable" id="innoagendaPanelTableTop" cellpadding="0" cellspacing="0" >');s.append("<tr>");s.append('<td class="iacvWeekGroupViewUserTop">&nbsp;');s.append('</td><td id="innoagendaCalendarViewContentLabelTable"><table class="innoagendaCalendarViewContentLabelTable" cellpadding="0" cellspacing="0"><tr>');for(u=0;u<7;u++){var n=Ext.util.Format.date(q,"l")+"<br/><b>"+Ext.util.Format.date(q,"d/m")+"</b>";if(Ext.util.Format.date(y,"d/m/Y")==Ext.util.Format.date(q,"d/m/Y")){n='<span style="color:#F00;font-weight:bold">'+n+"</span>";}s.append('<td id="iacvWeekGroupDayLabel_'+q.format("Y_m_d")+'" class="innoagendaPanelHeaders">'+n+"</td>");q=q.add(Date.DAY,1);}s.append("</tr>");s.append("</table></td>\n");s.append('<td id="iacvScrollbarSpacer" class="innoagendaCalendarTopScrollbarSpacer">&nbsp;</td>\n');s.append("</tr></table></div>");s.append('<div id="innoagendaPanelTableContainer" class="innoagendaPanelTableContainer" style="background-color: #e8edf6;">');s.append('<table class="innoagendaPanelTable" id="innoagendaPanelTable" cellpadding="0" cellspacing="0" >');var k=new Array();for(u=0;u<e;u++){q=w;switch(this.whoType){case"group":case"view":r=this.who.users[u].id;break;case"resources":r=this.who.users[u].dbId;break;}var E=false;if(innoAgenda.Permissions[r].readAgenda){E=true;}s.append("<tr>");s.append('<td class="iacvWeekGroupViewUser" id="iacvWeekGroupViewUser_'+r+'">');s.append('<div class="iacvGroupViewUserAvatar64" style="margin-bottom: 4px;');if(this.who.users[u].type=="resource"){if(this.who.users[u].photo=="1"){s.append("background: #FFFFFF url(img/resources/"+this.who.users[u].dbId+"_64.png?nocache"+Math.random()+") no-repeat 0px 0px;");}else{s.append("background-image: url(img/default_resource_64.png)");}}else{if(this.who.users[u].photo){s.append("background: #FFFFFF url(img/avatars/"+this.who.users[u].id+"_64.png?nocache"+Math.random()+") no-repeat 0px 0px;");}}s.append('"></div>'+this.who.users[u].name+"</td>");if(E){s.append("<td><table style='table-layout:fixed;border-collapse: collapse; border-width: 0px; width: 100%;height: 100%;' ><tr height='100%'>");for(var t=0;t<7;t++){if(u==0){k.push(q);}var g="iacv_day_"+q.format("Y_m_d")+"_"+r;var p="iacvWeekGroupViewDay";if(q.format("w")==0||q.format("w")==6){p+=" iacvWeekGroupViewDayHoliday";}else{for(var v=0;v<b.length;v++){if(q.format("d/m/Y")==b[v].date.format("d/m/Y")){p+=" iacvWeekGroupViewDayHoliday";}}}s.append('<td class="'+p+'"><div id="'+g+'" class="iacvWeekGroupViewDayDiv">');s.append("&nbsp;");s.append("</div></td>");q=q.add(Date.DAY,1);}s.append("</tr></table></td>");}else{s.append('<td class="iacvWeekGroupViewDayUnauthorized">&nbsp;</td>');}s.append("</tr>");}s.append("</table></div>");q=w;whenDatePicker.maxSelectionDays=7;whenDatePicker.clearSelectedDates();whenDatePicker.setSelectedDates(k);whenDatePicker.setValue(q);this.panel.body.dom.innerHTML=s.toString();var r,C,d,A;for(u=0;u<e;u++){var B=this.who.users[u];switch(this.whoType){case"group":r=B.id;C=B.name;d="user";A=false;break;case"view":r=B.id;C=B.name;d=B.type;A=true;break;case"resources":r=B.dbId;C=B.name;d="resource";A=false;break;}var l="iacvWeekGroupViewUser_"+r;Ext.get(l).on("click",function(G,H,F){if(innoAgenda.Permissions[F.id].readAgenda){this.setWhoAndWhen(F.type,F.who,F.timestamp,A);}else{Ext.Msg.show({title:"Erreur",buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR,msg:"Vous n'avez pas la permission d'accéder à l'agenda de "+F.who.name+"."});}},this,{type:d,who:this.who.users[u],timestamp:this.current,id:r});var f=new Ext.ToolTip({target:l,html:"Cliquez ici, pour afficher<br/>la vue hebdomadaire de <br/><b>"+B.name+"</b>",dismissDelay:0});this.tooltips.push(f.id);}q=w;for(u=0;u<7;u++){var r="iacvWeekGroupDayLabel_"+q.format("Y_m_d");Ext.get(r).on("click",function(G,H,F){this.setWhen(F.timestamp,F.viewType);},this,{viewType:"day",timestamp:q.format("U")});f=new Ext.ToolTip({target:r,html:"Cliquez ici, pour afficher<br/>le <b>"+q.format("d/m/Y")+"</b>",dismissDelay:0});this.tooltips.push(f.id);q=q.add(Date.DAY,1);}this.panel.body.on("mousemove",this.panelMouseMove.createDelegate(this));this.panel.body.on("mouseup",this.panelMouseUp.createDelegate(this));Ext.getBody().on("mouseup",this.panelMouseUp.createDelegate(this));this.panel.on("resize",this.panelResize.createDelegate(this));this.panelResize(this.panel);this.panel.body.on("contextmenu",function(F){F.stopEvent();});if(this.store){this.store.clearFilter();this.loadEvents();innoAgenda.Calendar.Absence.loadAbsences();}this.panel.body.unselectable();},initMonthGroupView:function(c){this.current=(c)?c:this.current;debug("Fx: 'initMonthView'",4);this.viewType="month";var z=new Date();var g=this.who.users.length;var A=0;var a=(!c)?z:new Date.parseDate(this.current,"U");var f=a.getFirstDateOfMonth();var u=a.getLastDateOfMonth();var q=a.format("t");var w=parseInt(a.format("j"),10);var B=parseInt(a.format("m"),10);var p=parseInt(a.format("Y"),10);var b=Ext.ux.DatePickerPlus.prototype.nationalHolidays(p);var s=f;this.start=f.format("U");this.stop=u.add(Date.DAY,1).format("U");var v=new StringBuffer();v.append('<div id="innoagendaPanelTopContainer">');v.append('<div class="iacvTop">');v.append('<div class="iacvWho">');v.append('<div class="iacvWhoText" style="background-image:url('+this.whoImg+')">'+this.who.name+"</div>");v.append("</div>");v.append('<div class="iacvWhen">');v.append('<div class="iacvDatePrev" onclick="iacv.initView('+a.add(Date.MONTH,-1).format("U")+')"></div>');v.append('<div class="iacvWhenText">'+a.format("F Y")+"</div>");v.append('<div class="iacvDateNext" onclick="iacv.initView('+a.add(Date.MONTH,1).format("U")+')"></div>');v.append("</div>");v.append("</div>");v.append('<table class="innoagendaPanelTable" id="innoagendaPanelTableTop" cellpadding="0" cellspacing="0" >');v.append("<tr>");v.append('<td class="iacvWeekGroupViewUserTop">&nbsp;');v.append('</td><td id="innoagendaCalendarViewContentLabelTable"><table class="innoagendaCalendarViewContentLabelTable" cellpadding="0" cellspacing="0"><tr>');for(x=0;x<q;x++){var o=s.format("l").substr(0,2)+"<br/><b>"+Ext.util.Format.date(s,"d")+"</b>";if(Ext.util.Format.date(z,"d/m/Y")==Ext.util.Format.date(s,"d/m/Y")){o='<span style="color:#F00;font-weight:bold">'+o+"</span>";}v.append('<td id="iacvMonthGroupDayLabel_'+s.format("Y_m_d")+'" class="innoagendaPanelHeaders">'+o+"</td>");s=s.add(Date.DAY,1);}v.append("</tr>");v.append("</table></td>\n");v.append('<td id="iacvScrollbarSpacer" class="innoagendaCalendarTopScrollbarSpacer">&nbsp;</td>\n');v.append("</tr></table></div>");v.append('<div id="innoagendaPanelTableContainer" class="innoagendaPanelTableContainer" style="background-color: #e8edf6;">');v.append('<table class="innoagendaPanelTable" id="innoagendaPanelTable" cellpadding="0" cellspacing="0" >');var m=new Array();for(var x=0;x<g;x++){s=f;switch(this.whoType){case"group":case"view":t=this.who.users[x].id;break;case"resources":t=this.who.users[x].dbId;break;}var F=false;if(innoAgenda.Permissions[t].readAgenda){F=true;}v.append("<tr>");v.append('<td class="iacvWeekGroupViewUser" id="iacvMonthGroupViewUser_'+t+'"><div class="iacvGroupViewUserAvatar64" style="margin-bottom: 4px;');if(this.who.users[x].type=="resource"){if(this.who.users[x].photo=="1"){v.append("background: #FFFFFF url(img/resources/"+this.who.users[x].dbId+"_64.png?nocache"+Math.random()+") no-repeat 0px 0px;");}else{v.append("background-image: url(img/default_resource_64.png)");}}else{if(this.who.users[x].photo){v.append("background: #FFFFFF url(img/avatars/"+this.who.users[x].id+"_64.png?nocache"+Math.random()+") no-repeat 0px 0px;");}}v.append('"></div>'+this.who.users[x].name+"</td>");if(F){v.append("<td><table style='table-layout:fixed; border-collapse: collapse; border-width: 0px; width: 100%;height: 100%;' ><tr height='100%'>");var l,r;for(j=0;j<q;j++){if(x==0){m.push(s);}l="iacv_day_"+s.format("Y_m_d")+"_"+t;r="iacvWeekGroupViewDay";if(s.format("w")==0||s.format("w")==6){r+=" iacvWeekGroupViewDayHoliday";}else{for(var y=0;y<b.length;y++){if(s.format("d/m/Y")==b[y].date.format("d/m/Y")){r+=" iacvWeekGroupViewDayHoliday";}}}v.append('<td class="'+r+'"><div id="'+l+'" class="iacvWeekGroupViewDayDiv">');v.append("&nbsp;");v.append("</td></div>");s=s.add(Date.DAY,1);}v.append("</tr></table></td>");}else{v.append('<td class="iacvWeekGroupViewDayUnauthorized">&nbsp;</td>');}v.append("</tr>");}v.append("</table></div>");whenDatePicker.maxSelectionDays=31;whenDatePicker.clearSelectedDates();whenDatePicker.setSelectedDates(m);whenDatePicker.setValue(a);this.panel.body.dom.innerHTML=v.toString();this.panel.body.unselectable();this.panelResize(this.panel);var t,E,e,C;for(var x=0;x<g;x++){var D=this.who.users[x];switch(this.whoType){case"group":t=D.id;E=D.name;e="user";C=false;break;case"view":t=D.id;E=D.name;e=D.type;C=true;break;case"resources":t=D.dbId;E=D.name;e="resource";C=false;break;}var n="iacvMonthGroupViewUser_"+t;Ext.get(n).on("click",function(G,H,d){if(innoAgenda.Permissions[d.id].readAgenda){this.setWhoAndWhen(d.type,d.who,d.timestamp,C);}else{Ext.Msg.show({title:"Erreur",buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR,msg:"Vous n'avez pas la permission d'accéder à l'agenda de "+d.who.name+"."});}},this,{type:e,who:this.who.users[x],timestamp:this.current,id:t});var k=new Ext.ToolTip({target:n,html:"Cliquez ici, pour afficher<br/>la vue mensuelle de <br/><b>"+D.name+"</b>",dismissDelay:0});this.tooltips.push(k.id);}s=f;for(x=0;x<q;x++){t="iacvMonthGroupDayLabel_"+s.format("Y_m_d");Ext.get(t).on("click",function(G,H,d){this.setWhen(d.timestamp,d.viewType);},this,{viewType:"day",timestamp:s.format("U")});k=new Ext.ToolTip({target:t,html:"Cliquez ici, pour afficher<br/>le <b>"+s.format("d/m/Y")+"</b>",dismissDelay:0});this.tooltips.push(k.id);s=s.add(Date.DAY,1);}if(this.store){this.store.clearFilter();this.loadEvents();innoAgenda.Calendar.Absence.loadAbsences();}},storeInit:function(){debug("Fx: 'initStore'",4);this.store=new Ext.data.Store({baseParams:{eventAction:"list"},proxy:new Ext.data.HttpProxy({url:IACV_SERVER_URL+"events.php"}),reader:new Ext.data.JsonReader({root:"data",id:"id"},this.eventRecordType),listeners:{beforeload:function(a,b){}.createDelegate(this),load:this.storeOnLoad.createDelegate(this),update:function(c,a,b){if(b==Ext.data.Record.COMMIT){}},add:function(b,a,c){}}});},storeFilter:function(a,b){if(this.whoType=="user"||this.whoType=="resource"){if(a.data.who.type==this.whoType&&a.data.who.id==this.who.id){return true;}return false;}else{if(this.whoType=="group"||this.whoType=="view"){for(i=0;i<this.who.users.length;i++){if(a.data.who.id==this.who.users[i].id){return true;}}return false;}}return false;},storeOnLoad:function(c,b,d){this.events=[];if(this.viewType=="year"){var e=[];Ext.Ajax.request({url:IACV_SERVER_URL+"notes.php",success:function(g){g=Ext.util.JSON.decode(g.responseText);if(g.success){for(l=0;l<g.notes.length;l++){var f=Date.parseDate(g.notes[l].day,"U");var k=f.format("Y_m_d");var m='<div class="iacvYearNoteRecap"><b>Note de journée :</b><br/>';m+=g.notes[l].description;m+="</div>";e[k]=(e[k])?e[k]+""+m:m;}}this.store.each(function(p){var q=p.data.start.format("Y_m_d");var r='<div class="iacvYearEventRecap">';r+="<b>"+(p.data.hidden?"Evénement privé":p.data.type.path)+"</b><br/>";if(!p.data.hidden){r+="Titre: "+(p.data.title?p.data.title:"Pas de titre")+"</b><br/>";}r+="Du "+p.data.start.format("d/m/Y")+" à "+p.data.start.format("H:i");r+=" au "+p.data.stop.format("d/m/Y")+" à "+p.data.stop.format("H:i");r+="</div>";e[q]=e[q]?(e[q]+""+r):r;}.createDelegate(this));for(var l in e){var k=Date.parseDate(l,"Y_m_d");var o="iacvYearDay_"+l;if(Ext.get(o)){Ext.get(o).applyStyles({backgroundImage:"url(img/groupYearDayEventBg.png)",color:"#FFFFFF"});m='<div class="tooltipContent"><h1 style="background-image: url(img/icons/date.png)">Evénements du '+k.format("l d F Y")+"</h1>"+e[l]+"</div>";var n=new Ext.ToolTip({target:o,width:300,height:200,autoScroll:true,html:m,baseCls:"iacvTooltip",showDelay:50,hideDelay:0,dismissDelay:0});this.tooltips.push(n.id);}}}.createDelegate(this),failure:function(f){Ext.Msg.show({title:"Erreur",buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR,msg:"Impossible de joindre le serveur"});},params:{action:"list",start:this.start,stop:this.stop,user:this.who.id}});}else{var a=0;this.store.each(function(f){if(f.data.lastmod>this.lastmod){if(Ext.get("eventDiv_"+f.data.id)){Ext.get("eventDiv_"+f.data.id).remove();}}if(!Ext.get("eventDiv_"+f.data.id)){innoAgenda.Calendar.Event.add(f.data);}a=f.data.lastmod>a?f.data.lastmod:a;}.createDelegate(this));this.lastmod=a>this.lastmod?a:this.lastmod;}this.panelResize(this.panel);this.mask.hide();},loadEvents:function(){this.mask.show();if(this.store){this.store.removeAll();this.store.reload({params:{start:this.start,stop:this.stop,whoType:this.whoType,whoId:this.who.id,who:Ext.util.JSON.encode(this.who)}});}},eventTooltip:function(e){var f,a,b;if(e.purpose=="RESERVATION"){f="Détail de la réservation";a="image.png";b=e.contact;}else{f="Détail de l'événement";a="date.png";b=e.type.path;}var d='<div class="tooltipContent">';d+='<h1 style="background-image: url(img/icons/'+a+')">';d+=f+"</h1>";d+='<div class="iacvYearEventRecap">';if(e.who.type=="user"){if(e.isPrivate){d+='<div class="iacvEventPrivate"></div>';}if(e.contact){d+='<div class="iacvEventContact"></div>';}if(e.resource>0){d+='<div class="iacvEventResource"></div>';}if(e.repeat>0){d+='<div class="iacvEventRepeat"></div>';}}d+="<b>"+b+"</b><br/>";d+=(e.title?("Titre: "+e.title):"Pas de titre")+"<br/>";d+="Du "+e.start.format("d/m/Y")+" à "+e.start.format("H:i");d+=" au "+e.stop.format("d/m/Y")+" à "+e.stop.format("H:i");d+="</div>";if(e.purpose=="STANDARD"&&e.who.type=="resource"){d+='<h1 style="background-image:url(img/icons/group.png)">Utilisateur(s) ayant réservé(s) la ressource</h1>';for(var c=0;c<e.linkedUsers.length;c++){d+='<p style="background-image:url(img/icons/bullet_blue.png)">'+e.linkedUsers[c].name+"</p>";}}d+="</div>";return d;},divToDate:function(a){},deleteEvent:function(l,e,g,a,c,d,k){debug("Fx: 'deleteEvent'",4);var b=0;e=(e==true)?true:false;g=(g==true)?true:false;if(e==true||g==true){b=a;}else{if(this.menuSelectedEventId&&Ext.get(this.menuSelectedEventId)){var f=/^(.*)__md[0-9]+$/g;if(Ext.get(this.menuSelectedEventId).hasClass("iacv_multi_days_event")){var m=f.exec(this.menuSelectedEventId);if(m){this.menuSelectedEventId=m[1];}}b=this.menuSelectedEventId.substr(9);}}Ext.Ajax.request({url:IACV_SERVER_URL+"events.php",success:function(n){n=Ext.util.JSON.decode(n.responseText);if(n.success){var p=0;while(Ext.get(this.menuSelectedEventId+"__md"+p)){Ext.get(this.menuSelectedEventId+"__md"+p).remove();p++;}var r=n.removed;for(var o in r){b="eventDiv_"+r[o];if(Ext.get(b)){Ext.get(b).remove();}}if(Ext.get(this.menuSelectedEventId)){Ext.get(this.menuSelectedEventId).remove();}this.loadEvents();innoAgenda.Calendar.Absence.loadAbsences();}else{var q;switch(n.errors.reason){case"EVENT_UNKNOW_EVENT":iacv.initView();q="L'événement que vous tentez de supprimer n'existe pas. Peut-être que celui-ci a d'ores et déjà été supprimé.";Ext.Msg.show({title:"Erreur",buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR,msg:q});break;case"EVENT_REMOVING_RESOURCE":if(l){q="Des ressources supplémentaires sont utilisées dans cette réservation. Si vous la supprimez, ces ressources seront libérées.<br/><br/>Voulez-vous vraiment supprimer cette réservation?";}else{q="Des ressources sont réservées pour cet événement. Si vous le supprimez, ces ressources seront libérées.<br/><br/>Voulez-vous vraiment supprimer cet événement?";}Ext.Msg.show({title:"Attention",buttons:Ext.Msg.YESNO,icon:Ext.MessageBox.WARNING,msg:q,fn:function(s){if(s=="yes"){this.deleteEvent(l,true,false,b);}}.createDelegate(this)});break;case"EVENT_REMOVING_POST_KM_CHARGE":q="Vous vous apprêtez à supprimer des frais kilométriques alors que des frais kilométriques susceptibles de vous faire changer de tranche ont été posés ultérieurement.<br/><br/> Confirmez-vous cette action ?<br/>";Ext.Msg.show({title:"Attention",buttons:Ext.Msg.YESNO,icon:Ext.MessageBox.WARNING,msg:q,fn:function(s){if(s=="yes"){this.deleteEvent(l,e,g,b,c,true,false);}}.createDelegate(this)});break;case"EVENT_REMOVING_MARKED_CHARGE":q="Vous vous apprêtez à supprimer des frais déjà clôturés.<br/><br/> Confirmez-vous cette action ?<br/>";Ext.Msg.show({title:"Attention",buttons:Ext.Msg.YESNO,icon:Ext.MessageBox.WARNING,msg:q,fn:function(s){if(s=="yes"){this.deleteEvent(l,e,g,b,c,true,true);}}.createDelegate(this)});break;case"EVENT_REMOVING_REPETITION":q="Cet élément fait partie d'une répétition.";new Ext.Window({title:"Attention",renderTo:document.body,id:"eventRepetitionRemovingForm",closable:false,width:400,height:205,layout:"fit",bbar:["->",{text:"Valider",cls:"x-btn-text-icon",icon:"img/icons/accept.png",handler:function(){var t=Ext.getCmp("eventRepetitionRemovingFormRadio");var s;t.items.each(function(u){s=u.getRawValue();return !u.getValue();});this.deleteEvent(l,true,true,b,s);Ext.getCmp("eventRepetitionRemovingForm").close();}.createDelegate(this)},{text:"Annuler",cls:"x-btn-text-icon",icon:"img/icons/cancel.png",handler:function(){Ext.getCmp("eventRepetitionRemovingForm").close();}.createDelegate(this)}],items:{xtype:"form",bodyStyle:"padding: 5px",border:false,items:[{xtype:"fieldset",title:"Evénements à supprimer",autoHeight:true,items:[{xtype:"radiogroup",fieldLabel:"",labelWidth:0,itemCls:"x-check-group-alt",columns:1,hideLabel:true,id:"eventRepetitionRemovingFormRadio",items:[{boxLabel:"Supprimer cet événement et ses répétitions <b>précédentes</b>",name:"eventRemovingRepeat",inputValue:-1},{boxLabel:"Supprimer cet événement et ses répétitions <b>futures</b>",name:"eventRemovingRepeat",inputValue:1},{boxLabel:"Supprimer cet événement et <b>toutes</b> ses répétitions",name:"eventRemovingRepeat",inputValue:0},{boxLabel:"Supprimer <b>uniquement</b> cet événement",name:"eventRemovingRepeat",inputValue:2,checked:true}]}]}]}}).show();break;default:q="Une erreur non gérée s'est produite<br/>"+n.errors.reason;Ext.Msg.show({title:"Erreur",buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR,msg:q});break;}}}.createDelegate(this),failure:function(n){},params:{id:b,eventAction:"remove",deleteResource:e,deleteRepetition:g,param:c,deleteKmCharge:d,deleteMarkedCharge:k}});innoAgenda.Calendar.Menus.eventMenu.hide();return true;},dateToPixel:function(b){var a=b.format("H");var c=b.format("i");return this.hourToPixel(a,c);},hourToPixel:function(a,c,b){debug("Fx: 'hourToPixel'",8);b=b?b:(4*this.quarterHeight);c=c?c:0;return(parseInt(a,10)+(parseInt(c,10)/60))*b;},pixelToHour:function(b){debug("Fx: 'pixelToHour'",8);var a=Math.floor(b/(4*this.quarterHeight));var c=(b%(4*this.quarterHeight))*60/(4*this.quarterHeight);if(c<10){c="0"+c;}return{h:a,m:c};},scrollToHour:function(a,b){debug("Fx: 'scrollToHour'",6);if(Ext.get("innoagendaPanelTableContainer")){var c=this.hourToPixel(a,b);Ext.get("innoagendaPanelTableContainer").scrollTo("top",c,true);}},eventMouseDown:function(g){debug("Fx: 'eventMouseDown (begin)'",4);g.stopEvent();this.goForDD=false;if(g.button!=0){debug("Fx: 'eventMouseDown (not left click => cancel)'",6);return false;}var f=!(((this.whoType=="group"||this.whoType=="resources"||this.whoType=="view")&&(this.viewType=="week"||this.viewType=="month"))||(this.whoType=="user"&&this.viewType=="month"));if(f){var a=g.getTarget("div.innoagendaDayEvent");if(a){this.selectedEventId=a.id;}else{this.selectedEventId=g.getTarget("div.innoagendaDayReservation").id;}}else{if(g.getTarget("div.iacvMonthEvent")){this.selectedEventId=g.getTarget("div.iacvMonthEvent").id;}else{this.selectedEventId=g.getTarget("div.iacvGroupWMEvent").id;}}var c=this.store.getById(this.eventDivToId(this.selectedEventId)).data;if(c.hidden){this.selectedEventId=false;debug("Fx: 'eventMouseDown (hidden or unauthorized) => cancel without event recap)'",6);return false;}if(!innoAgenda.Permissions[c.who.id].writeAgenda||(c.who.type=="resource"&&c.purpose=="STANDARD")){var b=this.eventDivToId(this.selectedEventId);this.eventInfo(c.purpose=="RESERVATION",b);this.selectedEventId=false;debug("Fx: 'eventMouseDown (not allowed (hasn't writeAgenda permission to that user) => cancel with event recap)'",6);return false;}if(f){if(g.getTarget("div.iacv_multi_days_event")){Ext.MessageBox.alert("Attention","Vous ne pouvez pas déplacer ou retailler avec la souris<br/>un événement qui se déroule sur plusieurs jours.");return false;}this.mouseDownPos={x:g.xy[0],y:g.xy[1]};var k=Ext.get(this.selectedEventId).getHeight();var d=Ext.get(this.selectedEventId).getTop();this.selectedEventYOffset=g.xy[1]-d;if(k-this.selectedEventYOffset<5){this.resize=true;debug("Fx: 'eventMouseDown (ready for resizing event => ok)'",6);}else{this.resize=false;debug("Fx: 'eventMouseDown (ready for moving event => ok)'",6);}}return true;},tableMouseDown:function(f){debug("Fx: 'tableMouseDown'",4);if(f.button==0){if(this.whoType=="group"||this.whoType=="view"){var l=this.weekDayOverId.substr(20);}else{var l=this.targetedUser=this.who.id;}if(!innoAgenda.Permissions[l].writeAgenda){return false;}var k=f.getXY();this.create=true;if(!f.getTarget("div.innoagendaPanelWeekDayContainer")){return false;}var c=Ext.get(f.getTarget("div.innoagendaPanelWeekDayContainer").id);var d=k[1]-Ext.get("innoagendaPanelTable").getY();d=(Math.round((k[1]-Ext.get("innoagendaPanelTable").getY())/this.quarterHeight))*this.quarterHeight;h=this.quarterHeight;bottom=d+h;var a=(d-15>0)?d-15:0;var b=(d+h<945)?d+h:945;this.selectedEventYOffset=d;var g='<div id="iacv_new_event_begin" class="iacv_new_event_limits" style="top:'+a+'px"></div>';g+='<div id="iacv_new_event" class="innoagendaDayEvent" style="top:'+d+"px;height:"+h+'px"></div>';g+='<div id="iacv_new_event_end" class="iacv_new_event_limits" style="top:'+b+'px"></div>';Ext.DomHelper.append(c,g);eventBegin=this.pixelToHour(d);eventEnd=this.pixelToHour(bottom);Ext.get("iacv_new_event_begin").update(eventBegin.h+":"+eventBegin.m);Ext.get("iacv_new_event_end").update(eventEnd.h+":"+eventEnd.m);this.selectedEventId="iacv_new_event";Ext.get("iacv_new_event").setOpacity(0.3);this.goForDD=true;return true;}return false;},parseEventId:function(){var a=this.selectedEventId.substr(9);return a;},collisionMgr:function(b){var d=0;var g=[];var f=0;var a=this.hourToPixel(24,0);if(b.top<f||b.top>a||b.bottom<f||b.bottom>a){return false;}var c=this.parseEventId();this.store.each(function(m){if(b.date.clearTime(true).format("U")==m.data.start.clearTime(true).format("U")&&(!b.whoId||(b.whoId&&b.whoId==m.data.who.id))){if(m.data.id!=c){var n=this.dateToPixel(m.data.start);var o=(m.data.start.format("d/m/Y")!=m.data.stop.format("d/m/Y"))?a:this.dateToPixel(m.data.stop);if((b.top>=n&&b.bottom<=o)||(b.top<n&&b.bottom>n)||(b.top<o&&b.bottom>o)){g[d]={top:n,bottom:o};d++;}}}},this);var l={top:b.top,bottom:b.bottom};var k=10000;for(var e=0;e<d;e++){if(b.type=="move"){currentDiffTop=Math.abs(b.top-g[e].top);currentDiffBottom=Math.abs(b.top-g[e].bottom);currentDiff=(currentDiffTop<currentDiffBottom)?currentDiffTop:currentDiffBottom;}if(b.type=="create"||b.type=="resize"){currentDiff=Math.abs(b.top-g[e].top);}if(b.type=="createReverse"){currentDiff=Math.abs(b.bottom-g[e].bottom);}if(currentDiff<k){k=currentDiff;if(b.type=="move"){currentDiffTop=Math.abs(b.y-g[e].top);currentDiffBottom=Math.abs(b.y-g[e].bottom);moveWay=(currentDiffTop<currentDiffBottom)?"reverse":"normal";if(moveWay=="normal"){f=g[e].bottom;a=g[e].bottom+(b.bottom-b.top);if(a>24*4*this.quarterHeight){f=g[e].top-(b.bottom-b.top);a=g[e].top;}l={top:f,bottom:a};}else{f=g[e].top-(b.bottom-b.top);a=g[e].top;if(f<0){f=g[e].bottom;a=g[e].bottom+(b.bottom-b.top);}l={top:f,bottom:a};}collisionId2=0;this.store.each(function(m){if(b.date.clearTime(true).format("U")==m.data.start.clearTime(true).format("U")&&(!b.whoId||(b.whoId&&b.whoId==m.data.who.id))){if(m.data.id!=c){var n=this.dateToPixel(m.data.start);var o=(m.data.start.format("d/m/Y")!=m.data.stop.format("d/m/Y"))?a:this.dateToPixel(m.data.stop);if((f>=n&&a<=o)||(f<n&&a>n)||(f<o&&a>o)){collisionId2++;}}}},this);if(collisionId2>0){l={top:b.original.top,bottom:b.original.bottom};if(b.changeDay){return{forbidden:true};}}}if(b.type=="create"||b.type=="resize"){l={top:b.top,bottom:g[e].top};}if(b.type=="createReverse"){l={top:g[e].bottom,bottom:b.bottom};}}}return(d>0)?l:false;},panelMouseMove:function(M){debug("Fx: 'panelMouseMove'",7);var y=false;var n=20;var m={x:20,y:10};if(((this.whoType=="group"||this.whoType=="resources"||this.whoType=="view")&&(this.viewType=="week"||this.viewType=="month"))||(this.whoType=="user"&&this.viewType=="month")){return false;}if(M.xy[0]>this.mouseDownPos.x+m.x||M.xy[0]<this.mouseDownPos.x-m.x||M.xy[1]>this.mouseDownPos.y+m.y||M.xy[1]<this.mouseDownPos.y-m.y){this.goForDD=true;}if(this.selectedEventId&&this.goForDD){var x=this.create?this.selectedEventId:this.selectedEventId+"_ghost";if(!this.create&&!Ext.get(x)){x=this.selectedEventId+"_ghost";var v='<div id="'+x+'_begin" class="iacv_new_event_limits" style="top:'+o+"px; cursor: "+(this.resize?"s-resize":"move")+';"></div>';v+='<div id="'+x+'" class="innoagendaDayEvent iacv_event_ghost" style="cursor: '+(this.resize?"s-resize":"move")+';"></div>';v+='<div id="'+x+'_end" class="iacv_new_event_limits" style="top:'+o+"px; cursor: "+(this.resize?"s-resize":"move")+';"></div>';Ext.DomHelper.append(Ext.get(this.selectedEventId).up("div"),v);Ext.get(x).applyStyles({backgroundColor:Ext.get(this.selectedEventId).getStyle("backgroundColor")}).setBox(Ext.get(this.selectedEventId).getBox());Ext.get(this.selectedEventId).setOpacity(0.3);Ext.get(x).setOpacity(0.8);}if(!Ext.get(x)){return false;}var r=Ext.get(x);var l=Ext.get("innoagendaPanelTable").getY();var C=M.xy[1]-l;var G=r.getTop(true);var f=r.getHeight();var b=G+f;var q=r.up("div.innoagendaPanelWeekDayContainer");var c=q.id;var g=c.substr(9,10);var w=c.substr(20);var s=Date.parseDate(g,"Y_m_d");var F=s;var B=s.format("Y");var k=s.format("m");var d=s.format("d");if(this.create){var o=0;var a=0;var K=0;var D;if(C<this.selectedEventYOffset){D="createReverse";o=(Math.round((C)/this.quarterHeight))*this.quarterHeight;o=(o>=0)?o:0;K=(o>=0)?this.selectedEventYOffset-o:f;}else{D="create";o=this.selectedEventYOffset;K=(Math.round((C-G)/this.quarterHeight))*this.quarterHeight;}K=(K>=this.quarterHeight)?K:this.quarterHeight;a=o+K;var I=this.collisionMgr({type:D,whoId:w,top:o,bottom:a,date:s,original:{top:G,bottom:b,date:F}});if(I){o=I.top;a=I.bottom;K=a-o;}var t=this.pixelToHour(o);var L=this.pixelToHour(a);var u=(o-15>0)?o-15:0;var N=(o+K<945)?o+K:945;Ext.get(x).setTop(o).setHeight(K);Ext.get(x+"_begin").update(t.h+":"+t.m).setTop(u);Ext.get(x+"_end").update(L.h+":"+L.m).setTop(N);}else{if(this.resize){o=G;K=(Math.round((C-G)/this.quarterHeight))*this.quarterHeight;a=o+K;if(K<this.quarterHeight){return false;}I=this.collisionMgr({type:"resize",whoId:w,top:o,bottom:a,date:s,original:{top:G,bottom:b,date:F}});if(I){o=I.top;a=I.bottom;K=a-o;}Ext.get(x).setHeight(K);t=this.pixelToHour(o);L=this.pixelToHour(a);u=(o-15>0)?o-15:0;N=(a<(24*(4*this.quarterHeight)-15))?a:(24*(4*this.quarterHeight)-15);Ext.get(x+"_begin").update(t.h+":"+t.m).setTop(u);Ext.get(x+"_end").update(L.h+":"+L.m).setTop(N);}else{o=(Math.round((C-this.selectedEventYOffset)/this.quarterHeight))*this.quarterHeight;K=f;a=o+K;if(o<0||a>24*(4*this.quarterHeight)){return false;}g=this.weekDayOverId.substr(9,10);s=Date.parseDate(g,"Y_m_d");B=s.format("Y");k=s.format("m");d=s.format("d");I=this.collisionMgr({type:"move",whoId:w,top:o,bottom:a,y:C,date:s,original:{top:G,bottom:b,date:F}});if(this.viewType=="week"&&this.weekDayOverId!=c){g=this.weekDayOverId.substr(9,10);w=c.substr(20);s=Date.parseDate(g,"Y_m_d");I=this.collisionMgr({type:"move",changeDay:true,whoId:w,top:o,bottom:a,y:C,date:s,original:{top:G,bottom:b,date:F}});if(!I.forbidden){var p=Ext.get(x).getBox(false,true);Ext.get(x).remove();Ext.select("div.iacv_new_event_limits").remove();v='<div id="'+x+'_begin" class="iacv_new_event_limits"></div>';v+='<div id="'+x+'" class="innoagendaDayEvent iacv_event_ghost"></div>';v+='<div id="'+x+'_end" class="iacv_new_event_limits"></div>';Ext.DomHelper.append(Ext.get(this.weekDayOverId),v);Ext.get(x).setOpacity(0.8);Ext.get(x).applyStyles({backgroundColor:Ext.get(this.selectedEventId).getStyle("backgroundColor")});Ext.get(x).setHeight(p.height);Ext.get(x).setTop(p.top);}}if(I){o=I.top;a=I.bottom;K=a-o;}t=this.pixelToHour(o);L=this.pixelToHour(a);u=(o-15>0)?o-15:0;N=(a<945)?a:945;Ext.get(x+"_begin").update(t.h+":"+t.m).setTop(u);Ext.get(x+"_end").update(L.h+":"+L.m).setTop(N);Ext.get(x).setTop(o);if(G<o){y=true;}else{y=false;}}}if(this.resize||y||this.create){var A=Ext.get(x).getBottom();var J=Ext.get("innoagendaPanelTableContainer").getBottom();var z=J-A;if(z<=10){Ext.get("innoagendaPanelTableContainer").scroll("b",n,false);}}else{var H=Ext.get(x).getTop();var E=Ext.get("innoagendaPanelTableContainer").getTop();z=H-E;if(z<=10){Ext.get("innoagendaPanelTableContainer").scroll("t",n,false);}}}return false;},panelMouseUp:function(v){debug("Fx: 'panelMouseUp'",5);if(!this.selectedEventId){return false;}if(!Ext.get(this.selectedEventId)){this.selectedEventId=false;this.goForDD=false;return false;}if(!this.goForDD&&!this.create&&this.selectedEventId!="iacv_new_event"){var n=this.eventDivToId(this.selectedEventId);var r=this.store.getById(n).data;this.eventInfo(r.purpose=="RESERVATION",n);this.selectedEventId=false;this.goForDD=false;return false;}var a=this.create?this.selectedEventId:(this.selectedEventId+"_ghost");if(!Ext.get(a)){return false;}var f=Ext.get(a).getTop(true);var b=Ext.get(a).getBottom(true);var d=this.pixelToHour(f);var u=this.pixelToHour(b);var t=Ext.get(a).up("div").id;var w=t.substr(9,10);var m=Date.parseDate(w+"_"+d.h+"_"+d.m,"Y_m_d_G_i");var c=Date.parseDate(w+"_"+u.h+"_"+u.m,"Y_m_d_G_i");if(!this.create){this.goForDD=false;var o=this.parseEventId();var p=this.selectedEventId;this.selectedEventId=null;Ext.Ajax.request({url:IACV_SERVER_URL+"events.php",success:function(e){e=Ext.util.JSON.decode(e.responseText);if(e.success){a=p+"_ghost";Ext.get(p).remove();Ext.get(a).remove();Ext.select("div.iacv_new_event_limits").remove();this.loadEvents();innoAgenda.Calendar.Absence.loadAbsences();}else{var z;switch(e.errors.reason){case"EVENT_RESIZING_RESOURCE_CONFLICT":z="La ressource '"+e.errors.param+"' n'est pas disponible pour ce créneau horaire.";break;default:z="Une erreur non gérée s'est produite<br/>"+e.errors.reason;}Ext.Msg.show({title:"Erreur",buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR,msg:z});Ext.get(p).remove();Ext.get(a).remove();Ext.select("div.iacv_new_event_limits").remove();this.loadEvents();innoAgenda.Calendar.Absence.loadAbsences();}}.createDelegate(this),failure:function(e){},params:{eventAction:"modify",dd:"true",eventPropertyId:o,eventPropertyTimeStart:m.format("U"),eventPropertyTimeStop:c.format("U")}});}if(this.create){this.formAction="create";this.formSelectedId=0;this.selectedEventId=null;this.create=false;o="newevent"+(new Date().format("U"));var q=Ext.getCmp("eventPropertyWho");Ext.getCmp("eventPropertiesGeneralFormPanel").getForm().reset();var g;if(this.whoType=="group"||this.whoType=="view"){var x=t.substr(20);g=x;q.setImplicitValue(x);var y="";for(var s=0;s<this.who.users.length;s++){if(x==this.who.users[s].id){y=this.who.users[s].name;break;}}q.valueNotFoundText=y;if(q.el){q.setRawValue(y);}}else{g=this.who.id;q.valueNotFoundText=this.who.name;q.setImplicitValue(this.who.id);}var k=isInt(g);if(k){q.disable();q.valueNotFoundText="La réservation est effectuée pour le compte d'un tiers";q.setImplicitValue("notAnUser");}else{q.enable();}Ext.getCmp("eventPropertyTitle").setValue("");Ext.getCmp("eventPropertyDate").setValue(m);Ext.getCmp("eventPropertyStart").setValue(m);Ext.getCmp("eventPropertyStop").setValue(c);if(k){if(Ext.getCmp("eventPropertyGeneralAddBtn")){Ext.getCmp("eventPropertyGeneralAddBtn").hide();}if(Ext.getCmp("reservationPropertyGeneralAddBtn")){Ext.getCmp("reservationPropertyGeneralAddBtn").show();}}else{if(Ext.getCmp("eventPropertyGeneralAddBtn")){Ext.getCmp("eventPropertyGeneralAddBtn").show();}if(Ext.getCmp("reservationPropertyGeneralAddBtn")){Ext.getCmp("reservationPropertyGeneralAddBtn").hide();}}if(Ext.getCmp("eventPropertyGeneralModifyBtn")){Ext.getCmp("eventPropertyGeneralModifyBtn").hide();}if(Ext.getCmp("eventPropertyGeneralDeleteBtn")){Ext.getCmp("eventPropertyGeneralDeleteBtn").hide();}if(Ext.getCmp("reservationPropertyGeneralModifyBtn")){Ext.getCmp("reservationPropertyGeneralModifyBtn").hide();}if(Ext.getCmp("reservationPropertyGeneralDeleteBtn")){Ext.getCmp("reservationPropertyGeneralDeleteBtn").hide();}Ext.getCmp("eventPropertyEventType").valueNotFoundText="";Ext.getCmp("eventPropertyEventType").setValue("");Ext.getCmp("eventPropertyWhere").setValue("");Ext.getCmp("eventPropertyWhere").enable();Ext.getCmp("eventPropertyWhereFromContact").setValue(false);Ext.getCmp("eventPropertyWhereFromContact").disable();Ext.getCmp("eventPropertyWhereFromContactLabel").disable();Ext.getCmp("eventPropertyComment").setValue("");Ext.getCmp("eventPropertyContact").setValue("");Ext.getCmp("eventPropertyContact").valueNotFoundText="";if(Ext.getCmp("eventPropertyEventType")&&Ext.getCmp("eventPropertyEventType").tree&&Ext.getCmp("eventPropertyEventType").tree.getSelectionModel().getSelectedNode()){Ext.getCmp("eventPropertyEventType").tree.getSelectionModel().getSelectedNode().unselect();}Ext.getCmp("eventPropertyEventPrivate").setValue(0);innoAgenda.resourcesSelection.gridDataStore.reload({params:{eventId:this.formSelectedId,resourceId:k?g:null}});innoAgenda.Contact.combo.iaOk=false;innoAgenda.Contact.combo.iaRecord=null;delRepetition();innoAgenda.Windows.eventPropertiesPanel.fileStore.removeAll();innoAgenda.resourcesSelection.gridDataStore.removeAll();if(k){}innoAgenda.Windows.newEventRecapUpdate();innoAgenda.Windows.eventPropertiesPanel.repetition.enable();innoAgenda.Windows.EventAlert.empty();var l=Ext.getCmp("eventPropertyTabs");l.setActiveTab(0);innoAgenda.Windows.eventProperties.show();innoAgenda.Windows.eventProperties.init(k?null:g,k);if(k){document.getElementById("eventPropertyWho").disabled=null;Ext.get("eventPropertyWho").hide();Ext.get("eventPropertyWho").show();l.hideTabStripItem("eventTabCharge");}else{l.unhideTabStripItem("eventTabCharge");}}return false;},scrollbarSpacer:function(){var c=Ext.get("innoagendaPanelTableContainer");var a=Ext.get("innoagendaCalendarViewContentLabelTable");var b=Ext.get("iacvScrollbarSpacer");var d=Ext.get(panel.body.id).getBox();if(!a||!b){return false;}var e=(c.dom.scrollHeight>c.getHeight());newWidth=d.width-100;if(e){spacerWidth=18;}else{spacerWidth=0;}newWidth=newWidth-spacerWidth;a.setWidth(newWidth);b.setWidth(spacerWidth);return true;},panelResize:function(a){debug("Fx: 'panelResize'",4);var d=Ext.get(a.body.id).getBox();if(Ext.get("innoagendaPanelTableContainer")){var b=(d.width-2);var l=d.height-Ext.get("innoagendaPanelTopContainer").getHeight()-2;this.scrollbarSpacer();Ext.get("innoagendaPanelTableContainer").setSize(b,l);this.scrollbarSpacer();if(this.viewType=="month"){var e=Math.floor((l-6*18)/6);Ext.select("td.iacvOtherMonthViewDay").setHeight(e);Ext.select("td.iacvMonthViewDay").setHeight(e);}else{if(this.viewType=="year"&&this.whoType=="user"){}}if(this.panel.getInnerWidth()<this.eventLogoWidthLimit){Ext.select("div.eventLogo").each(function(m){m.dom.style.display="none";});}else{Ext.select("div.eventLogo").each(function(m){m.dom.style.display="block";});}if(this.viewType=="day"&&this.whoType!="user"&&this.whoType!="resource"){Ext.get("innoagendaPanelTable").dom.style.width="100%";Ext.get("innoagendaCalendarViewContentLabelTable").dom.style.width="100%";Ext.get("iacvDayGroupName").dom.style.width="100%";var k=Ext.select("td.innoagendaPanelWeekDay");var c=Ext.select("td.innoagendaPanelHeaders");if(k.elements.length>0){var g=k.first().getWidth();if(g<=this.groupDayWidthLimit){k.each(function(m){m.setWidth(this.groupDayWidthLimit);}.createDelegate(this));c.each(function(m){m.setWidth(this.groupDayWidthLimit);}.createDelegate(this));Ext.TaskMgr.start(this.taskDayGroupScroll);var f=k.getCount()*this.groupDayWidthLimit+70;Ext.get("innoagendaPanelTable").dom.style.width=f;Ext.get("innoagendaCalendarViewContentLabelTable").dom.style.width=f;Ext.get("iacvDayGroupName").setWidth(Ext.get("innoagendaPanelTableTop").getWidth()-18);}else{Ext.TaskMgr.stop(this.taskDayGroupScroll);Ext.get("iacvDayGroupName").scrollTo("left",0);c.each(function(m){m.dom.style.width="auto";}.createDelegate(this));Ext.select("td.innoagendaCalendarViewContentHoursTop").first().setWidth(70);}}}}},taskDayGroupScroll:{run:function(){var a=Ext.get("innoagendaPanelTableContainer").getScroll();if(Ext.get("iacvDayGroupName")){Ext.get("iacvDayGroupName").scrollTo("left",a.left);}},interval:10},eventContextMenu:function(c){debug("Fx: 'eventContextMenu'",4);this.menuSelectedEventId=c.getTarget("div.iacvEvent").id;if(this.store.getById(this.eventDivToId(this.menuSelectedEventId)).data.hidden){c.stopEvent();return false;}innoAgenda.Calendar.Menus.eventMenu.showAt(c.getXY());var b=this.eventDivToId(this.menuSelectedEventId);var a=this.store.getById(b).data;if(a.place){Ext.getCmp("eventMenuDirections").enable();}else{Ext.getCmp("eventMenuDirections").disable();}if(a.purpose=="STANDARD"){innoAgenda.Calendar.Menus.eventMenu.forStandardEvent();}else{if(a.purpose=="RESERVATION"){innoAgenda.Calendar.Menus.eventMenu.forReservation();}}if((a.purpose=="RESERVATION"||a.who.type=="user")&&innoAgenda.Permissions[a.who.id].writeAgenda){Ext.getCmp("eventMenuDelete").enable();Ext.getCmp("eventMenuModify").enable();}else{Ext.getCmp("eventMenuDelete").disable();Ext.getCmp("eventMenuModify").disable();}c.stopEvent();},onEventPropertySubmit:function(a){if(!a){a=0;}var k=false;var g=false;var c=false;innoAgenda.EventCharge.gridDataStore.each(function(A){c=true;if(A.get("modified")){if(A.get("type")=="KM"){k=true;}if(A.get("marked")){g=true;}}});if(c&&(!Ext.getCmp("eventPropertyTitle").getValue())){Ext.MessageBox.alert("Erreur","Vous ne pouvez pas déclarer des frais sans indiquer un titre à l'événement.");return;}if(a<1&&c&&!Ext.getCmp("eventPropertyWhere").getValue()){Ext.MessageBox.confirm("Confirmation","Vous vous apprêtez à déclarer un frais sans indiquer de lieu.<br/><br/> Confirmez-vous cette action ?<br/>",function(A){if(A=="yes"){iacv.onEventPropertySubmit(1);}});return;}if(a<2&&innoAgenda.EventCharge.hasLaterKmCharges&k){Ext.MessageBox.confirm("Confirmation","Vous vous apprêtez à ajouter ou modifier des frais kilométriques alors que des frais kilométriques susceptibles de vous faire changer de tranche ont déjà été posés après le "+innoAgenda.EventCharge.chargesDate.format("d/m/Y")+".<br/><br/> Confirmez-vous cette action ?<br/>",function(A){if(A=="yes"){iacv.onEventPropertySubmit(2);}});return;}if(a<3&&g){Ext.MessageBox.confirm("Confirmation","Vous vous apprêtez à modifier des frais déjà clôturés.<br/><br/> Confirmez-vous cette action ?<br/>",function(A){if(A=="yes"){iacv.onEventPropertySubmit(3);}});return;}mask.show();var z=this.formSelectedId;var v=Ext.getCmp("eventPropertyDate").getValue();var t=Ext.getCmp("eventPropertyStart").getValue();var m=Ext.getCmp("eventPropertyStop").getValue();t=t.split(":");m=m.split(":");var e=v.add(Date.HOUR,t[0]).add(Date.MINUTE,t[1]);var r=(!(m[0]=="00"&&m[1]=="00"))?v.add(Date.HOUR,m[0]).add(Date.MINUTE,m[1]):v.add(Date.DAY,1);var s=Ext.getCmp("eventPropertyWho").getValue();var q=Ext.getCmp("eventPropertyEventType").getValue();var f=(Ext.getCmp("eventPropertyEventPrivate").checked)?true:false;var o=Ext.getCmp("eventPropertyTitle").getValue();var y=Ext.getCmp("eventPropertyWhere").getValue();var n=Ext.getCmp("eventPropertyComment").getValue();var w=Ext.getCmp("eventPropertyWhereFromContact").getValue();var d=-1;var p="";if(innoAgenda.Contact.combo.iaOk){d=innoAgenda.Contact.combo.iaRecord.data.id;}else{p=innoAgenda.Contact.combo.getValue();}var l={};i=0;innoAgenda.resourcesSelection.gridDataStore.each(function(A){l[i]=A.data.dbId;i++;});var u=[];i=0;innoAgenda.Windows.eventPropertiesPanel.fileStore.each(function(A){u[i]=A.data.id;i++;});var x=[];i=0;innoAgenda.EventCharge.gridDataStore.each(function(A){x[i]=A.data;i++;});var b=(e<r);Ext.Ajax.request({url:IACV_SERVER_URL+"events.php",success:function(A){A=Ext.util.JSON.decode(A.responseText);if(A.success){innoAgenda.Windows.eventProperties.hide();if(Ext.get("iacv_new_event")){Ext.get("iacv_new_event").remove();}Ext.select("div.iacv_new_event_limits").remove();mask.hide();this.initView();}else{mask.hide();var B;switch(A.errors.reason){case"EVENT_INVALID_SLOT":B="La créneau horaire sélectionné n'est pas disponible.";this.initView();break;case"EVENTTYPE_UNKNOW":B="Le type de l'événement est invalide";Ext.getCmp("eventPropertyEventType").markInvalid();Ext.getCmp("eventPropertyTabs").setActiveTab(0);this.initView();return false;break;case"EVENT_RESIZING_RESOURCE_CONFLICT":B="La ressource '"+A.errors.param+"' n'est pas disponible pour ce créneau horaire.";break;default:B="Une erreur non gérée s'est produite<br/>"+A.errors.reason;}Ext.Msg.show({title:"Erreur",buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR,msg:B});}}.createDelegate(this),failure:function(A){},params:{eventAction:this.formAction,eventPropertyId:z,eventPropertyOwner:s,eventPropertyOwnerType:"user",eventPropertyContact:d,eventPropertySimpleContact:p,eventPropertyWhere:y,eventPropertyWhereFromContact:w,eventPropertyTitle:o,eventPropertyComment:n,eventPropertyEventType:q,eventPropertyEventPrivate:f,eventPropertyTimeStart:e.format("U"),eventPropertyTimeStop:r.format("U"),eventPropertyResource:Ext.util.JSON.encode(l),eventPropertyRepetition:Ext.util.JSON.encode(repetitionParameters),eventPropertyAlert:Ext.util.JSON.encode(innoAgenda.Windows.EventAlert.displayPanel.result),eventPropertyFiles:Ext.util.JSON.encode(u),eventPropertyCharges:Ext.util.JSON.encode(x)}});},onReservationPropertySubmit:function(a){if(!a){a=0;}var f=[];var p=0;innoAgenda.resourcesSelection.gridDataStore.each(function(w){f[p]=w.data.dbId;p++;});mask.show();var v=this.formSelectedId;var s=Ext.getCmp("eventPropertyDate").getValue();var q=Ext.getCmp("eventPropertyStart").getValue();var g=Ext.getCmp("eventPropertyStop").getValue();q=q.split(":");g=g.split(":");var c=s.add(Date.HOUR,q[0]).add(Date.MINUTE,q[1]);var o=(!(g[0]=="00"&&g[1]=="00"))?s.add(Date.HOUR,g[0]).add(Date.MINUTE,g[1]):s.add(Date.DAY,1);var n=Ext.getCmp("eventPropertyEventType").getValue();var d=(Ext.getCmp("eventPropertyEventPrivate").checked)?true:false;var l=Ext.getCmp("eventPropertyTitle").getValue();var u=Ext.getCmp("eventPropertyWhere").getValue();var k=Ext.getCmp("eventPropertyComment").getValue();var t=Ext.getCmp("eventPropertyWhereFromContact").getValue();var e=-1;var m="";if(innoAgenda.Contact.combo.iaOk){e=innoAgenda.Contact.combo.iaRecord.data.id;}else{m=innoAgenda.Contact.combo.getValue();}var r=[];p=0;innoAgenda.Windows.eventPropertiesPanel.fileStore.each(function(w){r[p]=w.data.id;p++;});var b=(c<o);Ext.Ajax.request({url:IACV_SERVER_URL+"resource.php",success:function(w){w=Ext.util.JSON.decode(w.responseText);if(w.success){innoAgenda.Windows.eventProperties.hide();if(Ext.get("iacv_new_event")){Ext.get("iacv_new_event").remove();}Ext.select("div.iacv_new_event_limits").remove();mask.hide();this.initView();}else{mask.hide();var x;switch(w.errors.reason){case"EVENT_INVALID_SLOT":x="La créneau horaire sélectionné n'est pas disponible.";this.initView();break;case"RESERVATION_NO_RESOURCE":x="Vous n'avez pas reservé de ressources.";Ext.getCmp("eventPropertyTabs").setActiveTab(1);break;case"RESERVATION_NO_CONTACT":x="Vous devez spécifier un contact pour qui réserver la ressource.";Ext.getCmp("eventPropertyTabs").setActiveTab(0);break;case"EVENT_RESIZING_RESOURCE_CONFLICT":x="La ressource '"+w.errors.param+"' n'est pas disponible pour ce créneau horaire.";break;default:x="Une erreur non gérée s'est produite<br/>"+w.errors.reason;}Ext.Msg.show({title:"Erreur",buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR,msg:x});}}.createDelegate(this),failure:function(w){},params:{action:this.formAction,eventPropertyId:v,eventPropertyContact:e,eventPropertySimpleContact:m,eventPropertyWhere:u,eventPropertyWhereFromContact:t,eventPropertyTitle:l,eventPropertyComment:k,eventPropertyEventType:n,eventPropertyEventPrivate:d,eventPropertyTimeStart:c.format("U"),eventPropertyTimeStop:o.format("U"),eventPropertyResource:Ext.util.JSON.encode(f),eventPropertyRepetition:Ext.util.JSON.encode(repetitionParameters),eventPropertyAlert:Ext.util.JSON.encode(innoAgenda.Windows.EventAlert.displayPanel.result),eventPropertyFiles:Ext.util.JSON.encode(r)}});},onEventPropertyCancel:function(){if(Ext.get("iacv_new_event")){Ext.get("iacv_new_event").remove();}Ext.select("div.iacv_new_event_limits").remove();Ext.getCmp("eventPropertiesGeneralFormPanel").getForm().reset();},newEvent:function(){var b=new Date();var d=parseInt(b.format("i"),10);d=(d%15);d=(d>7)?-(15-d):d;d=d*60;var c=Date.parseDate(b.format("U")-d,"U");var k=Date.parseDate(c.format("U")+3600,"U");this.formAction="create";var a=Ext.getCmp("eventPropertyWho");a.enable();Ext.getCmp("eventPropertiesGeneralFormPanel").getForm().reset();if(this.whoType=="group"||this.whoType=="view"){for(var g=0;g<this.who.users.length;++g){if(this.who.users[g].type=="user"){var f=this.who.users[g];if(innoAgenda.Permissions[f.id].writeAgenda){var e=f.id;a.setImplicitValue(f.id);a.valueNotFoundText=f.name;if(a.el){a.setRawValue(f.name);}break;}}}}else{var e=this.who.id;a.setImplicitValue(this.who.id);a.valueNotFoundText=this.who.name;if(a.el){a.setRawValue(this.who.name);}}Ext.getCmp("eventPropertyTitle").setValue("");Ext.getCmp("eventPropertyDate").setValue(c);Ext.getCmp("eventPropertyStart").setValue(c);Ext.getCmp("eventPropertyStop").setValue(k);Ext.getCmp("eventPropertyEventPrivate").setValue(0);Ext.getCmp("eventPropertyEventType").valueNotFoundText="";Ext.getCmp("eventPropertyEventType").setValue("");if(Ext.getCmp("eventPropertyGeneralAddBtn")){Ext.getCmp("eventPropertyGeneralAddBtn").show();}if(Ext.getCmp("eventPropertyGeneralModifyBtn")){Ext.getCmp("eventPropertyGeneralModifyBtn").hide();}if(Ext.getCmp("eventPropertyGeneralDeleteBtn")){Ext.getCmp("eventPropertyGeneralDeleteBtn").hide();}if(Ext.getCmp("reservationPropertyGeneralAddBtn")){Ext.getCmp("reservationPropertyGeneralAddBtn").hide();}if(Ext.getCmp("reservationPropertyGeneralModifyBtn")){Ext.getCmp("reservationPropertyGeneralModifyBtn").hide();}if(Ext.getCmp("reservationPropertyGeneralDeleteBtn")){Ext.getCmp("reservationPropertyGeneralDeleteBtn").hide();}Ext.getCmp("eventPropertyComment").setValue("");Ext.getCmp("eventPropertyWhere").enable();Ext.getCmp("eventPropertyWhereFromContact").setValue(false);Ext.getCmp("eventPropertyWhereFromContact").disable();Ext.getCmp("eventPropertyWhereFromContactLabel").disable();Ext.getCmp("eventPropertyWhere").setValue("");Ext.getCmp("eventPropertyContact").setValue("");Ext.getCmp("eventPropertyContact").valueNotFoundText="";if(Ext.getCmp("eventPropertyEventType")&&Ext.getCmp("eventPropertyEventType").tree&&Ext.getCmp("eventPropertyEventType").tree.getSelectionModel().getSelectedNode()){Ext.getCmp("eventPropertyEventType").tree.getSelectionModel().getSelectedNode().unselect();}delRepetition();innoAgenda.Contact.combo.iaOk=false;innoAgenda.Contact.combo.iaRecord=null;innoAgenda.Windows.eventPropertiesPanel.fileStore.removeAll();innoAgenda.resourcesSelection.gridDataStore.removeAll();innoAgenda.Windows.newEventRecapUpdate();innoAgenda.resourcesSelection.gridDataStore.reload({params:{eventId:this.formSelectedId}});innoAgenda.Windows.eventPropertiesPanel.repetition.enable();innoAgenda.Windows.EventAlert.empty();var l=Ext.getCmp("eventPropertyTabs");l.setActiveTab(0);innoAgenda.Windows.eventProperties.show();innoAgenda.Windows.eventProperties.init(e,false);l.unhideTabStripItem("eventTabCharge");},newReservation:function(){var e=new Date();var c=parseInt(e.format("i"),10);c=(c%15);c=(c>7)?-(15-c):c;c=c*60;var a=Date.parseDate(e.format("U")-c,"U");var d=Date.parseDate(a.format("U")+3600,"U");this.formAction="create";Ext.getCmp("eventPropertiesGeneralFormPanel").getForm().reset();var b=Ext.getCmp("eventPropertyWho");b.disable();b.valueNotFoundText="La réservation est effectuée pour le compte d'un tiers";b.setValue("notAnUser");Ext.getCmp("eventPropertyTitle").setValue("");Ext.getCmp("eventPropertyDate").setValue(a);Ext.getCmp("eventPropertyStart").setValue(a);Ext.getCmp("eventPropertyStop").setValue(d);Ext.getCmp("eventPropertyEventPrivate").setValue(0);Ext.getCmp("eventPropertyEventType").valueNotFoundText="";Ext.getCmp("eventPropertyEventType").setValue("");if(Ext.getCmp("eventPropertyGeneralAddBtn")){Ext.getCmp("eventPropertyGeneralAddBtn").hide();}if(Ext.getCmp("eventPropertyGeneralModifyBtn")){Ext.getCmp("eventPropertyGeneralModifyBtn").hide();}if(Ext.getCmp("eventPropertyGeneralDeleteBtn")){Ext.getCmp("eventPropertyGeneralDeleteBtn").hide();}if(Ext.getCmp("reservationPropertyGeneralAddBtn")){Ext.getCmp("reservationPropertyGeneralAddBtn").show();}if(Ext.getCmp("reservationPropertyGeneralModifyBtn")){Ext.getCmp("reservationPropertyGeneralModifyBtn").hide();}if(Ext.getCmp("reservationPropertyGeneralDeleteBtn")){Ext.getCmp("reservationPropertyGeneralDeleteBtn").hide();}Ext.getCmp("eventPropertyComment").setValue("");Ext.getCmp("eventPropertyWhere").enable();Ext.getCmp("eventPropertyWhereFromContact").setValue(false);Ext.getCmp("eventPropertyWhereFromContact").disable();Ext.getCmp("eventPropertyWhereFromContactLabel").disable();Ext.getCmp("eventPropertyWhere").setValue("");Ext.getCmp("eventPropertyContact").setValue("");Ext.getCmp("eventPropertyContact").valueNotFoundText="";if(Ext.getCmp("eventPropertyEventType")&&Ext.getCmp("eventPropertyEventType").tree&&Ext.getCmp("eventPropertyEventType").tree.getSelectionModel().getSelectedNode()){Ext.getCmp("eventPropertyEventType").tree.getSelectionModel().getSelectedNode().unselect();}delRepetition();innoAgenda.Contact.combo.iaOk=false;innoAgenda.Contact.combo.iaRecord=null;innoAgenda.Windows.eventPropertiesPanel.fileStore.removeAll();innoAgenda.resourcesSelection.gridDataStore.removeAll();innoAgenda.Windows.newEventRecapUpdate();innoAgenda.resourcesSelection.gridDataStore.reload({params:{eventId:this.formSelectedId}});innoAgenda.Windows.eventPropertiesPanel.repetition.enable();innoAgenda.Windows.EventAlert.empty();var f=Ext.getCmp("eventPropertyTabs");f.setActiveTab(0);innoAgenda.Windows.eventProperties.show();innoAgenda.Windows.eventProperties.init(null,true);document.getElementById("eventPropertyWho").disabled=null;Ext.get("eventPropertyWho").hide();Ext.get("eventPropertyWho").show();f.hideTabStripItem("eventTabCharge");},eventDivToId:function(c){if(!c||!Ext.get(c)){return false;}var b=/^(.*)__md[0-9]+$/g;if(Ext.get(c).hasClass("iacv_multi_days_event")){var a=b.exec(c);if(a){c=a[1];}}return c.substr(9);},eventInfo:function(c,b,a){b=(b&&isInt(b))?b:this.eventDivToId(this.menuSelectedEventId);a=a?a:0;innoAgenda.Windows.eventInformations.setTitle("Récapitulatif de "+(c?"la réservation":"l'événement"));innoAgenda.Windows.eventInformations.show(b);innoAgenda.Windows.eventInformations.restore();innoAgenda.Windows.eventInformations.setSize(750,480);innoAgenda.Windows.eventInformations.center();this.mask.show();Ext.Ajax.request({url:IACV_SERVER_URL+"events.php",success:function(d){d=Ext.util.JSON.decode(d.responseText);if(d.success){var y=d.event;var z=d.contact;var B=d.resources;var u=d.alerts;var e=d.note;var t=d.charges;var l=d.files;var H="";switch(y.purpose){case"STANDARD":if(y.owner.type=="user"){H=y.owner.name;}else{if(y.owner.type=="resource"){var m=true;for(var A=0;A<y.linkedUsers.length;A++){H+=y.linkedUsers[A].name;if(!m){H+=", ";}m=false;}}}break;case"RESERVATION":break;}var f="";if(y.place){f=y.place;}else{if(z&&!z.simpleContact){f=z.address;}}var k=Date.parseDate(y.start,"U");var w=Date.parseDate(y.stop,"U");var r='<div class="eventInfo">';r+='<div class="eventInfoExtra">';r+='<div class="eventRecapItem">';if(y.isPrivate){r+='<p style="background-image: url(img/icons/lock.png)"><b>Evénement privé</b></p>';}else{r+='<p style="background-image: url(img/icons/lock_open.png)">Evénement public</p>';}if(y.repeat>0){r+='<p style="background-image: url(img/icons/control_repeat_blue.png)"><b>Evénement répété</b></p>';}r+="</div>";r+="</div>";if(y.purpose=="STANDARD"){r+='<div class="eventRecapItem"><h1 style="background-image: url(img/icons/user.png)">Qui ?</h1>';r+="<div>";r+="<b>"+H+"</b>";r+="</div>";r+="</div>";}r+='<div class="eventRecapItem"><h1 style="background-image: url(img/icons/date.png)">Quand ?</h1>';r+="<div>";r+="Du "+k.format("d F Y à H:i")+" au "+w.format("d F Y à H:i")+"";r+="</div>";r+="</div>";r+='<div class="eventRecapItem"><h1 style="background-image: url(img/icons/information.png)">Titre</h1>';r+="<div>";var G='<p class="eventRecapWarn">Indéfini</p>';if(y.title){G=y.title;}r+=G;r+="</div>";r+="</div>";r+='<div class="eventRecapItem"><h1 style="background-image: url(img/icons/bricks.png)">Type</h1>';r+="<div>";var g='<p class="eventRecapWarn">Indéfini</p>';if(y.type.path){g=y.type.path;}r+="<b>"+g+"</b>";r+="</div>";r+="</div>";r+="<table><tr><td>";r+='<div class="eventRecapItem"><h1 style="background-image: url(img/icons/vcard.png)">Contact</h1>';r+="<div>";if(z){if(z.simpleContact){r+="<b>"+z.simpleContact+"</b><br/>";}else{r+="<b>"+z.name+"</b><br/>";r+=Ext.util.Format.nl2br(z.address)+"<br/>";r+=(z.mail)?'<a href="mailto:'+z.mail+'">'+z.mail+"</a><br/>":"";r+=(z.phone)?"Tél. "+z.phone+"<br/>":"";}}else{r+='<p class="eventRecapWarn">Indéfini</p>';}r+="</div>";r+="</td><td>";r+='<div class="eventRecapItem"><h1 style="background-image: url(img/icons/map.png)">Lieu</h1>';r+="<div>";if(f!=""){r+=Ext.util.Format.nl2br(f);innoAgenda.Windows.eventInfoDirectionsDirection.place=f;Ext.getCmp("eventInfoDirections").enable();}else{r+='<p class="eventRecapWarn">Indéfini</p>';Ext.getCmp("eventInfoDirections").disable();}r+="</div>";r+="</div>";r+="</td></tr></table>";r+='<div class="eventRecapItem"><h1 style="background-image: url(img/icons/images.png)">Ressource(s)</h1>';r+="<div>";if(y.owner.type=="resource"){r+='<p class="'+y.owner.iconCls+'">'+y.owner.text+"</p>";}for(A=0;A<B.length;A++){r+='<p class="'+B[A].iconCls+'">'+B[A].text+"</p>";}if(B.length==0){r+='<p class="eventRecapWarn">Indéfini</p>';}r+="</div>";r+="</div>";var D='<div class="eventInfo">';D+='<div class="eventRecapItem"><h1 style="background-image: url(img/icons/note.png)">Note de journée</h1>';D+='<div class="comment">'+((e&&e.description.length>0)?e.description:"<i>Aucune note</i>")+"</div>";D+="</div>";var F=/a[ ]+href/gim;var E='<div class="eventInfo">';E+='<div class="eventRecapItem"><h1 style="background-image: url(img/icons/comment.png)">Commentaire</h1>';E+='<div class="comment">'+(Ext.util.Format.trim(y.comment).length>0?y.comment.replace(F,'a target="_blank" href'):"<i>Aucun commentaire</i>")+"</div>";E+="</div>";var x='<div class="eventInfo">';x+="<table><tr><td>";x+='<div class="eventRecapItem"><h1 style="background-image: url(img/icons/map.png)">Adresse de départ</h1>';x+="<div>";x+=Ext.util.Format.nl2br(innoAgenda.Prefs[innoAgenda.User.id].startPlace);x+="</div>";x+="</td><td>";x+='<div class="eventRecapItem"><h1 style="background-image: url(img/icons/map_go.png)">Adresse d\'arrivée</h1>';x+="<div>";x+=Ext.util.Format.nl2br(f);x+="</div>";x+="</td></tr></table>";x+="</div>";var o=Ext.getCmp("eventInfoGeneral");var q=Ext.getCmp("eventInfoGeneralComment");var s=Ext.getCmp("eventInfoGeneralNote");o.body.update(r);q.body.update(E);s.body.update(D);if(Ext.getCmp("eventInfoDirectionsParam").body){Ext.getCmp("eventInfoDirectionsParam").body.update(x);}else{Ext.getCmp("eventInfoDirectionsParam").html=x;}var n='<div class="eventInfo"><div class="eventRecapItem"><h1 style="background-image: url(img/icons/clock.png)">Alertes</h1>';n+=innoAgenda.Windows.EventAlert.recapHTML(u);n+="</div></div>";if(Ext.getCmp("eventInfoAlerts").body){Ext.getCmp("eventInfoAlerts").body.update(n);}else{Ext.getCmp("eventInfoAlerts").html=n;}if(u.length==0){Ext.getCmp("eventInfoAlerts").disable();}else{Ext.getCmp("eventInfoAlerts").enable();}var p='<div class="eventInfo"><div class="eventRecapItem"><h1 style="background-image: url(img/icons/money.png)">Frais</h1>';p+=innoAgenda.EventCharge.recapHTML(t);p+="</div></div>";if(Ext.getCmp("eventInfoCharges").body){Ext.getCmp("eventInfoCharges").body.update(p);}else{Ext.getCmp("eventInfoCharges").html=p;}if(t.length==0){Ext.getCmp("eventInfoCharges").disable();}else{Ext.getCmp("eventInfoCharges").enable();}var v='<div class="eventInfo"><div class="eventRecapItem"><h1 style="background-image: url(img/icons/page_link.png)">Fichiers</h1>';if(l){for(var A=0;A<l.length;A++){l[A].date=Date.parseDate(l[A].date,"U");v+='<a href="../server/json/file.php?dl=1&id='+l[A].id+'"><div class="fileDownload">';v+="<b>"+l[A].name+"</b><br/>";v+="Ajouté le "+l[A].date.format("d/m/Y")+" - ";v+="Type: "+l[A].type+"";v+="</div></a>";}}v+="</div></div>";if(Ext.getCmp("eventInfoFiles").body){Ext.getCmp("eventInfoFiles").body.update(v);}else{Ext.getCmp("eventInfoFiles").html=v;}if(l.length==0){Ext.getCmp("eventInfoFiles").disable();}else{Ext.getCmp("eventInfoFiles").enable();}this.mask.hide();Ext.getCmp("eventInformationsTabs").setActiveTab(a);if(a==3){innoAgenda.Windows.eventInfoGetDirection();}}else{this.mask.hide();var C;switch(d.errors.reason){case"EVENT_UNKNOW_EVENT":C="Cet évenement n'existe pas.";break;default:C="Une erreur non gérée s'est produite<br/>"+d.errors.reason;}Ext.Msg.show({title:"Erreur",buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR,msg:C});}}.createDelegate(this),failure:function(d){this.mask.hide();alert("Erreur interne");},params:{eventAction:"fulldetail",id:b}});innoAgenda.Calendar.Menus.eventMenu.hide();},modifyEvent:function(c){if(this.menuSelectedEventId&&Ext.get(this.menuSelectedEventId)){var b=/^(.*)__md[0-9]+$/g;if(Ext.get(this.menuSelectedEventId).hasClass("iacv_multi_days_event")){var a=b.exec(this.menuSelectedEventId);if(a){this.menuSelectedEventId=a[1];}}this.formAction="modify";this.formSelectedId=this.menuSelectedEventId.substr(9);Ext.Ajax.request({url:IACV_SERVER_URL+"events.php",success:function(m){m=Ext.util.JSON.decode(m.responseText);if(m.success){var f=m.event;var k=Ext.getCmp("eventPropertyWho");Ext.getCmp("eventPropertiesGeneralFormPanel").getForm().reset();if(this.whoType=="group"||this.whoType=="view"){Ext.getCmp("eventPropertyWho").setImplicitValue(f.owner.id);var g="";for(n=0;n<this.who.users.length;n++){if(f.owner.id==this.who.users[n].id){g=this.who.users[n].name;break;}}k.valueNotFoundText=g;if(k.el){k.setRawValue(g);}}else{k.setImplicitValue(f.owner.id);k.valueNotFoundText=this.who.name;if(k.el){k.setRawValue(this.who.name);}}if(c){k.disable();k.valueNotFoundText="La réservation est effectuée pour le compte d'un tiers";k.setImplicitValue("notAnUser");}else{k.enable();}var s=Date.parseDate(f.start,"U");var q=Date.parseDate(f.stop,"U");Ext.getCmp("eventPropertyDate").setValue(s);Ext.getCmp("eventPropertyStart").setValue(s);Ext.getCmp("eventPropertyStop").setValue(q);Ext.getCmp("eventPropertyTitle").setValue(f.title);Ext.getCmp("eventPropertyComment").setValue(f.comment);Ext.getCmp("eventPropertyEventType").valueNotFoundText=f.type.path;Ext.getCmp("eventPropertyEventType").setValue(f.type.id);if(f.isPrivate){Ext.getCmp("eventPropertyEventPrivate").setValue(1);}else{Ext.getCmp("eventPropertyEventPrivate").setValue(0);}if(f.place){Ext.getCmp("eventPropertyWhere").setValue(f.place);}else{Ext.getCmp("eventPropertyWhere").setValue("");}Ext.getCmp("eventPropertyWhereFromContact").setValue(false);Ext.getCmp("eventPropertyWhereFromContact").disable();Ext.getCmp("eventPropertyWhereFromContactLabel").disable();Ext.getCmp("eventPropertyWhere").enable();if(c){if(Ext.getCmp("eventPropertyGeneralModifyBtn")){Ext.getCmp("eventPropertyGeneralModifyBtn").hide();}if(Ext.getCmp("eventPropertyGeneralDeleteBtn")){Ext.getCmp("eventPropertyGeneralDeleteBtn").hide();}if(Ext.getCmp("reservationPropertyGeneralModifyBtn")){Ext.getCmp("reservationPropertyGeneralModifyBtn").show();}if(Ext.getCmp("reservationPropertyGeneralDeleteBtn")){Ext.getCmp("reservationPropertyGeneralDeleteBtn").show();}}else{if(Ext.getCmp("eventPropertyGeneralModifyBtn")){Ext.getCmp("eventPropertyGeneralModifyBtn").show();}if(Ext.getCmp("eventPropertyGeneralDeleteBtn")){Ext.getCmp("eventPropertyGeneralDeleteBtn").show();}if(Ext.getCmp("reservationPropertyGeneralModifyBtn")){Ext.getCmp("reservationPropertyGeneralModifyBtn").hide();}if(Ext.getCmp("reservationPropertyGeneralDeleteBtn")){Ext.getCmp("reservationPropertyGeneralDeleteBtn").hide();}}if(Ext.getCmp("eventPropertyGeneralAddBtn")){Ext.getCmp("eventPropertyGeneralAddBtn").hide();}if(Ext.getCmp("reservationPropertyGeneralAddBtn")){Ext.getCmp("reservationPropertyGeneralAddBtn").hide();}innoAgenda.Windows.EventAlert.empty();innoAgenda.Windows.EventAlert.displayPanel.result=m.alerts;innoAgenda.Windows.EventAlert.recapHTML();var d=false;for(var n in m.charges){if(typeof m.charges[n]!="function"){var p=new innoAgenda.EventCharge.gridRecord({id:"chargeType_"+m.charges[n].type.id,dbId:m.charges[n].type.id,name:m.charges[n].type.name,path:m.charges[n].type.path,coeff:parseFloat(m.charges[n].info.coeff),constant:parseFloat(m.charges[n].info.constant),total:parseFloat(m.charges[n].info.total),quantity:parseFloat(m.charges[n].info.quantity),cv:(m.charges[n].info.cv?parseInt(m.charges[n].info.cv,10):0),type:m.charges[n].info.type,kmCosts:(m.charges[n].type.kmCosts?m.charges[n].type.kmCosts:false),marked:(m.charges[n].marked?true:false),kmType:(m.charges[n].type.kmType),modified:false});if(m.charges[n].marked){d=true;}innoAgenda.EventCharge.gridDataStore.add(p);}}Ext.getCmp("eventPropertiesPanelChargeWestPanel").doLayout();innoAgenda.EventCharge.gridDataStore.sort("name","ASC");var r=m.contact;var u=innoAgenda.Contact.combo;if(r){if(r.simpleContact){u.collapse();u.iaOk=false;u.iaRecord=null;u.valueNotFoundText=r.simpleContact;u.setValue(r.simpleContact);}else{var p={};p.data=r;u.collapse();u.iaOk=true;u.iaRecord=p;u.valueNotFoundText=r.name;u.setValue(r.name);if(f.placeFromContact){Ext.getCmp("eventPropertyWhere").setValue(r.address);Ext.getCmp("eventPropertyWhereFromContact").setValue(true);Ext.getCmp("eventPropertyWhereFromContact").enable();Ext.getCmp("eventPropertyWhereFromContactLabel").enable();Ext.getCmp("eventPropertyWhere").disable();}}}else{u.iaOk=false;u.iaRecord=null;u.setValue("");u.valueNotFoundText="";}innoAgenda.Windows.eventPropertiesPanel.fileStore.removeAll();if(m.files){var e=m.files;for(var n=0;n<e.length;n++){p=new innoAgenda.Windows.eventPropertiesPanel.fileStoreRecord(e[n]);e[n].date=Date.parseDate(e[n].date,"U");innoAgenda.Windows.eventPropertiesPanel.fileStore.add(p);}}innoAgenda.Windows.eventPropertiesPanel.repetition.disable();delRepetition();var l=innoAgenda.resourcesSelection;l.gridDataStore.removeAll();innoAgenda.Windows.newEventRecapUpdate();l.gridDataStore.reload({params:{eventId:this.formSelectedId}});if(Ext.getCmp("eventPropertyEventType")&&Ext.getCmp("eventPropertyEventType").tree&&Ext.getCmp("eventPropertyEventType").tree.getSelectionModel().getSelectedNode()){Ext.getCmp("eventPropertyEventType").tree.getSelectionModel().getSelectedNode().unselect();}var t=Ext.getCmp("eventPropertyTabs");t.setActiveTab(0);innoAgenda.Windows.eventProperties.show();innoAgenda.Windows.eventProperties.init(f.owner.id,c);if(c){document.getElementById("eventPropertyWho").disabled=null;Ext.get("eventPropertyWho").hide();Ext.get("eventPropertyWho").show();t.hideTabStripItem("eventTabCharge");}else{t.unhideTabStripItem("eventTabCharge");}}else{var o;switch(m.errors.reason){case"EVENT_UNKNOW_EVENT":o="Cet évenement n'existe pas.";break;default:o="Une erreur non gérée s'est produite<br/>"+m.errors.reason;}Ext.Msg.show({title:"Erreur",buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR,msg:o});}}.createDelegate(this),failure:function(d){},params:{eventAction:"detail",id:this.menuSelectedEventId.substr(9)}});}innoAgenda.Calendar.Menus.eventMenu.hide();},dayContextMenu:function(a){a.stopEvent();var b=a.getTarget("td.innoagendaPanelHeaders").id;dateString=b.substr(17);this.selectedMenuDate=Date.parseDate(dateString,"Y_m_d").clearTime();innoAgenda.Calendar.Menus.dayMenu.showAt(a.getXY());},weekContextMenu:function(a){a.stopEvent();var b=a.getTarget("td.innoagendaPanelHeaders").id;dateString=b.substr(17);this.selectedMenuDate=Date.parseDate(dateString,"Y_m_d").clearTime();innoAgenda.Calendar.Menus.weekDayMenu.showAt(a.getXY());},loadNotes:function(){Ext.Ajax.request({url:IACV_SERVER_URL+"notes.php",success:function(b){b=Ext.util.JSON.decode(b.responseText);if(b.success){for(i=0;i<b.notes.length;i++){var a=Date.parseDate(b.notes[i].day,"U");if(this.viewType=="week"||this.viewType=="day"){id="iacvWeekDayLabel_"+a.format("Y_m_d");noteId=id+"_note";dayTd=Ext.get(id);if(!dayTd){continue;}dayTd.insertHtml("afterBegin",'<div id="'+noteId+'" class="iacvWeekNote"></div>');Ext.get(noteId).on("click",function(e,f,d){this.selectedMenuDate=d.day;this.weekContextMenuNoteDay();},this,{day:a});}else{if(this.viewType=="month"){id="iacvDayTop_"+a.format("Y_m_d");mid="iacvMonthNoteP_"+a.format("Y_m_d");noteId=id+"_note";dayTd=Ext.get(mid);dayTd.insertHtml("AfterEnd",'<div id="'+noteId+'" class="iacvWeekNote"></div>');}}var c='<div class="tooltipContent">';c+='<h1 style="background-image: url(img/icons/note.png)">';c+='Note sur la journée</h1><div style="padding: 5px;">';c+=b.notes[i].description;c+="</div></div>";tooltip=new Ext.ToolTip({target:noteId,width:300,height:200,autoScroll:true,html:c,baseCls:"iacvTooltip",showDelay:0,hideDelay:0,dismissDelay:0});this.tooltips.push(tooltip.id);}}else{}}.createDelegate(this),failure:function(a){Ext.Msg.show({title:"Erreur",buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR,msg:"Impossible de joindre le serveur"});},params:{action:"list",start:this.start,stop:this.stop,user:this.who.id}});},weekContextMenuNoteDay:function(a){a=(a)?a:this.selectedMenuDate.format("U");Ext.Ajax.request({url:IACV_SERVER_URL+"notes.php",success:function(b){b=Ext.util.JSON.decode(b.responseText);if(b.success){Ext.getCmp("dayNoteContent").setValue(b.note.description);innoAgenda.Windows.eventNote.show();}else{Ext.getCmp("dayNoteContent").setValue("");innoAgenda.Windows.eventNote.show();}}.createDelegate(this),failure:function(b){Ext.Msg.show({title:"Erreur",buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR,msg:"Impossible de joindre le serveur"});},params:{action:"detail",day:a,user:this.who.id}});},dayNoteSave:function(){var a=this.selectedMenuDate.format("U");var b=Ext.getCmp("dayNoteContent").getValue();Ext.Ajax.request({url:IACV_SERVER_URL+"notes.php",success:function(c){c=Ext.util.JSON.decode(c.responseText);if(c.success){innoAgenda.Windows.eventNote.hide();this.initView();}else{var d;switch(c.errors.reason){default:d="Une erreur non gérée s'est produite<br/>"+c.errors.reason;}Ext.Msg.show({title:"Erreur",buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR,msg:d});}}.createDelegate(this),failure:function(c){Ext.Msg.show({title:"Erreur",buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR,msg:"Impossible de joindre le serveur"});},params:{action:"modify",day:a,note:b,user:this.who.id}});},weekContextMenuSetDay:function(){this.setWhen(this.selectedMenuDate.format("U"),"day");},tableContextMenu:function(a){debug("Fx: 'tableContextMenu'",4);a.stopEvent();},tableMouseOver:function(a){debug("Fx: 'tableMouseOver'",6);if(a.getTarget("div.innoagendaPanelWeekDayContainer")){this.weekDayOverId=a.getTarget("div.innoagendaPanelWeekDayContainer").id;}},setWhoInfo:function(){var b="";type=this.whoType;who=this.who;var c=new Image();if(type=="user"){b="";if(who.photo){var a="img/avatars/"+who.id+"_64.png?nocache"+Math.random();c.src=a;b+='<div class="whoAvatar"><img src="'+a+'" /></div>';}else{b+='<div class="whoAvatar"><img src="img/default_64.png" /></div>';}b+='<div class="whoUser"><b>'+who.name+"</b></div>";if(who.group){b+='<div class="whoMail"><b>'+who.group.name+"</b></div>";}if(who.mail){b+='<div class="whoMail"><a href="mailto:'+who.mail+'">'+who.mail+"</a></div>";}if(who.phone){b+='<div class="whoMail">tél. '+who.phone+"</div>";}}else{if(type=="group"){b='<div class="whoUser"><b>'+who.name+"</b></div>";for(i=0;i<who.users.length;i++){b+='<div class="whoGroupUser">'+who.users[i].name+"</div>";}}else{if(type=="resource"){b="";if(who.photo>0){b+='<div class="whoAvatar"><img src="img/resources/'+who.id+"_64.png?nocache"+Math.random()+'" /></div>';}b+='<div class="whoUser"><b>'+who.name+"</b></div>";b+='<div class="whoGroupUser">'+who.resourceType+"</div>";}else{if(type=="resources"){b='<div class="whoUser"><b>'+who.name+"</b></div>";for(i=0;i<who.users.length;i++){b+='<div class="whoGroupUser">'+who.users[i].name+"</div>";}}else{if(type=="view"){b='<div class="whoUser"><b>'+who.name+"</b></div>";for(i=0;i<who.users.length;i++){b+='<div class="whoGroupUser">'+who.users[i].name+"</div>";}}else{b="<div><b>"+who.name+"</b></div>";}}}}}Ext.getCmp("whoInfo").body.update(b);},setWho:function(b,a){this.setWhoType(b);this.who=a;this.setWhoInfo();this.initView();},setViewType:function(a,b){this.viewType=a;if(b!==false){this.initView();}},setWhoType:function(a){this.whoType=a;switch(this.whoType){case"user":this.whoImg="img/icons/user.png";break;case"group":this.whoImg="img/icons/group.png";break;case"resource":this.whoImg="img/icons/image.png";break;case"resources":this.whoImg="img/icons/images.png";break;case"view":this.whoImg="img/icons/group.png";break;default:}},setWhoAndWhen:function(b,a,c,d){d=(d!==true)?d:true;this.setWhoType(b);if(b=="resource"&&!d){this.who=a.who;}else{this.who=a;}this.initView(c);this.setWhoInfo();},setWhen:function(a,b){this.viewType=b;this.initView(a);},defaultView:function(b,a,c){var b,c;for(view in innoAgenda.Prefs[innoAgenda.User.id].defaultView){if(innoAgenda.Prefs[innoAgenda.User.id].defaultView[view]=="day"){c="day";}if(innoAgenda.Prefs[innoAgenda.User.id].defaultView[view]=="week"){c="week";}if(innoAgenda.Prefs[innoAgenda.User.id].defaultView[view]=="month"){c="month";}if(innoAgenda.Prefs[innoAgenda.User.id].defaultView[view]=="year"){c="year";}if(innoAgenda.Prefs[innoAgenda.User.id].defaultView[view]=="user"){b="user";}if(innoAgenda.Prefs[innoAgenda.User.id].defaultView[view]=="group"){b="group";}}this.viewType=c;this.setWhoType(b);this.who=(b=="user")?innoAgenda.User:innoAgenda.Group;this.initView();this.setWhoInfo();}};};var iacv=new InnoAgendaCalendarView();UserSelectionDialog=Ext.extend(Ext.Window,{title:"Qui / Quoi ?",width:380,height:300,closeAction:"hide",shadowOffset:6,layout:"fit",iconCls:"who",buttonAlign:"center",maximizable:true,modal:true,onClose:function(){this.hide();},onOkay:function(){var f=this.treePanel.getSelectionModel().getSelectedNode();if(!f){return false;}var e=f.attributes.whoType?f.attributes.whoType:false;var d=f.attributes.who;if(e!="user"&&e!="group"&&e!="resource"&&e!="resources"&&e!="view"){Ext.MessageBox.alert("Attention","L'élément sélectionné n'est pas valide.<br/>Merci de choisir un autre élément");return false;}Ext.getCmp("groupValidationButton").disable();Ext.Ajax.request({url:IACV_SERVER_URL+"prefs.php",success:function(l){l=Ext.util.JSON.decode(l.responseText);for(var k in l){if(!innoAgenda.Prefs[k]){innoAgenda.Prefs[k]=new Array();}for(var g in l[k]){innoAgenda.Prefs[k][g]=l[k][g];}}Ext.getCmp("groupValidationButton").enable();this.onFinish(e,d);}.createDelegate(this),failure:function(g){Ext.Msg.show({title:"Erreur",buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR,msg:"Impossible de joindre le serveur"});},params:{action:"fetchForManyUsers",preference:Ext.util.JSON.encode(["activeSlots","workingDays"]),target:d.id,targetType:e}});if(e=="user"){if(!innoAgenda.Permissions[d.id]){innoAgenda.Permissions[d.id]=new Array();}for(var a in f.attributes.permission){innoAgenda.Permissions[d.id][a]=f.attributes.permission[a];}}else{if(e=="group"||e=="view"){for(var b in f.attributes.permissions){if(!innoAgenda.Permissions[b]){innoAgenda.Permissions[b]=new Array();}for(var a in f.attributes.permissions[b]){innoAgenda.Permissions[b][a]=f.attributes.permissions[b][a];}}}else{if(e=="resource"){if(!innoAgenda.Permissions[d.id]){innoAgenda.Permissions[d.id]=new Array();}for(var a in f.attributes.permission){innoAgenda.Permissions[d.id][a]=f.attributes.permission[a];}}else{if(e=="resources"){for(var c in f.attributes.permissions){if(!innoAgenda.Permissions[c]){innoAgenda.Permissions[c]=new Array();}for(var a in f.attributes.permissions[c]){innoAgenda.Permissions[c][a]=f.attributes.permissions[c][a];}}}}}}return true;},initComponent:function(){UserSelectionDialog.superclass.initComponent.call(this);var b=Ext.tree;var a=new b.AsyncTreeNode({text:"Groupes",draggable:false,expanded:true,id:"base"});this.treePanel=new b.TreePanel({autoScroll:true,animate:true,lines:true,containerScroll:true,border:false,bodyStyle:"padding: 5px;",loader:new b.TreeLoader({baseParams:{type:"who"},dataUrl:IACV_SERVER_URL+"group.php"}),root:a,rootVisible:false,listeners:{beforeClick:function(c){if(c.disabled){return false;}return true;}},region:"center",bbar:["->",{id:"groupValidationButton",xtype:"tbbutton",text:"Valider",iconCls:"groupValidationButton",handler:this.onOkay.createDelegate(this)},{xtype:"tbbutton",text:"Annuler",cls:"x-btn-text-icon",icon:"img/icons/cancel.png",handler:this.onClose.createDelegate(this)}]});this.add(this.treePanel);},onFinish:function(b,a){this.onClose();}});var iaMenu=new Ext.menu.Menu({id:"iaMenu",items:[{text:"<b>Nouvel événement</b>",icon:"img/icons/calendar_add.png",id:"iacvMenuNewevent",handler:function(){iacv.newEvent();}.createDelegate(iacv)},"-",{text:"Quitter",handler:disconnect,icon:"img/icons/cancel.png"}]});var searchMenu=new Ext.menu.Menu({id:"searchMenu",items:[{text:"Rechercher un créneau",icon:"img/icons/date_magnify.png",handler:function(){if(!innoAgenda.Windows.SlotSearch){deferLoad("Chargement de la recherche de créneau",SLOT_SEARCH_JS,function(){innoAgenda.Windows.SlotSearch.show();});}else{innoAgenda.Windows.SlotSearch.show();}}}]});var applicationsMenu=new Ext.menu.Menu({id:"applicationsMenu",items:[{text:"Absences",icon:"img/icons/weather_sun.png",handler:function(){if(!innoAgenda.Absence.mainWindow){deferLoad("Chargement du module Congés / RTT / Absences",ABSENCE_JS,function(){innoAgenda.Absence.mainWindow.showDefaultView();});}else{innoAgenda.Absence.mainWindow.showDefaultView();}}},{disabled:true,text:"Frais",id:"appMenuCharge",icon:"img/icons/money.png",handler:function(){innoAgenda.Windows.Charges.show();}},"-",{text:"Statistiques",handler:function(){if(!innoAgenda.Windows.Charts){deferLoad("Chargement du module de Statistiques",CHARTS_JS,function(){innoAgenda.Windows.Charts.show();});}else{innoAgenda.Windows.Charts.show();}},icon:"img/icons/chart_bar.png"}]});var helpMenu=new Ext.menu.Menu({id:"helpMenu",items:[{text:"<b>innoAgenda.fr</b> (site web)",icon:"img/icons/world_go.png",handler:function(){window.open("http://www.innoagenda.fr");}},{text:"<b>innoVortex.fr</b> (site web)",icon:"img/icons/world_go.png",handler:function(){window.open("http://www.innovortex.fr");}},{text:"<b>Forum innoAgenda</b>",icon:"img/icons/world_go.png",handler:function(){window.open("http://forum.innovortex.fr/viewforum.php?f=1");}},"-",{disabled:true,text:"Accéder à l'aide en ligne",icon:"img/icons/help.png",handler:function(){window.open("http://www.innoagenda.fr/help/");}},{text:"A propos d'<b>innoAgenda</b>...",icon:"img/icons/information.png",handler:function(){innoAgenda.Windows.about.show();}}]});var userMenu=new Ext.menu.Menu({id:"userMenu",items:[{text:"Préférences",handler:function(){Ext.Ajax.request({url:IACV_SERVER_URL+"prefs.php",params:{user:innoAgenda.User.id,action:"getMany",preference:Ext.util.JSON.encode(["activeSlots","workingDays","defaultView"])},success:function(a){innoAgenda.UserPrefs=Ext.util.JSON.decode(a.responseText);innoAgenda.Windows.Prefs.show();}});},icon:"img/icons/book.png"},"-",{text:"Mes messages",icon:"img/icons/email.png",handler:function(){messageStore.reload();innoAgenda.Windows.Message.show();}},{text:"Gérer mes contacts",icon:"img/icons/vcard.png",handler:function(){contactStore.load();innoAgenda.Windows.ContactWindow.show();}},{text:"Gérer mes vues perso.",icon:"img/icons/group.png",handler:function(){innoAgenda.Windows.CustomGroupLoad();innoAgenda.Windows.CustomGroupWindow.show();}}]});var customGroupMenu=new Ext.menu.Menu({id:"cgMenu",items:[{text:"<i>Aucune vue personnalisée définie</i>",disabled:true}],listeners:{hide:function(a){if(!Ext.getCmp("customGroupButton").pointed){Ext.getCmp("customGroupButton").toggle(false);}}}});Ext.BLANK_IMAGE_URL="./ext/resources/images/default/s.gif";var viewport=null;var panel=null;var mask=new Ext.LoadMask(Ext.getBody(),{msg:"Veuillez patienter..."});var keepAliveTask={run:function(){Ext.Ajax.request({url:IACV_SERVER_URL+"keepalive.php"});},interval:1200000};var whenDatePicker=new Ext.ux.DatePickerPlus({multiSelection:true,maxSelectionDays:31,renderOkUndoButtons:false,listeners:{select:function(b,a){},aftermonthchange:function(b){var a=b.activeDate;if(iacv.viewType=="month"){}},afterdateclick:function(c,a,b){c.maxSelectionDays=1;iacv.setViewType("day",false);iacv.initView(a.format("U"));},beforeweekclick:function(c,a,b){c.maxSelectionDays=7;},beforemonthclick:function(c,a,b){c.maxSelectionDays=31;},afterweekclick:function(c,a,b){c.maxSelectionDays=7;iacv.setViewType("week",false);iacv.initView(a.format("U"));},aftermonthclick:function(a){a.maxSelectionDays=31;date=a.getValue();iacv.setViewType("month",false);iacv.initView(date.format("U"));}}});var whenPanel=new Ext.Panel({title:"Quand ?",collapsible:true,titleCollapse:true,layout:"fit",iconCls:"whenPanelIcon",bodyStyle:"text-align: center;margin:auto;padding: 5px;",items:[whenDatePicker]});var msgPanel=new Ext.Panel({title:"Mes derniers messages",collapsible:true,titleCollapse:true,iconCls:"msgPanelIcon",tbar:[{xtype:"button",text:"Historique",tooltip:"Messages lus et/ou archivés",cls:"x-btn-text-icon",icon:"img/icons/email.png",handler:function(){messageStore.reload();innoAgenda.Windows.Message.show();}},"->",{xtype:"button",id:"msgSyncButton",tooltip:"Synchronisation des messages",iconCls:"x-tbar-loading",handler:function(){this.disable();msgPanel.fetchLastMsgs();}}],id:"msgPanel",msgTpl:new Ext.XTemplate("{[this.setFirst()]}",'<div id="lastMsgs">','<tpl if="msgs.length == 0"><i>Aucun message reçu</i></tpl>','<tpl for="msgs">','<span id="msg-{id}">{[this.br()]}','<img src="img/innovortex8.png">&nbsp;<a class="msgLink" onclick="innoAgenda.Windows.Message.showMsg({id});">',"{[this.formatTitle(values.title, values.isRead)]}","</a>","</span>","</tpl>","</div>",{br:function(){if(this.isFirst){this.isFirst=false;return"";}else{return"<br/>";}},isFirst:true,setFirst:function(){this.isFirst=true;return"";},formatTitle:function(b,a){if(a){return b;}else{return"<b>"+b+"</b>";}}}),receiveDate:0,lastNotifId:1,fetchLastMsgs:function(){Ext.Ajax.request({url:IACV_SERVER_URL+"message.php",params:{action:"list",limitDate:this.receiveDate},success:function(a){a=Ext.util.JSON.decode(a.responseText);innoAgenda.Messages=a.messages;for(var c in innoAgenda.Messages){if(typeof innoAgenda.Messages[c]!="function"){if(innoAgenda.Messages[c].receiveDate>msgPanel.receiveDate){msgPanel.lastNotifId++;var b=new Ext.ux.Notification({id:"notif-"+msgPanel.lastNotifId,title:"Nouveau message",height:100,width:200,html:'<div class="popup" onclick="Ext.getCmp(\'notif-'+msgPanel.lastNotifId+"').close(); innoAgenda.Windows.Message.showMsg("+innoAgenda.Messages[c].id+');"><img class="popup" src="img/innovortex.png"/><div class="popupMsg"><b>De '+innoAgenda.Messages[c].sender+" :</b><br/>"+innoAgenda.Messages[c].title+"</div>",iconCls:"eventInfoWindow",hideDelay:20000,resizable:false,draggable:false});b.show(document);}}}msgPanel.refreshMsgs();Ext.getCmp("msgSyncButton").enable();}});},refreshMsgs:function(){var c={msgs:[]};var b=5;for(var a in innoAgenda.Messages){if(b==0){break;}if(typeof innoAgenda.Messages[a]!="function"){if(innoAgenda.Messages[a].receiveDate>this.receiveDate){this.receiveDate=innoAgenda.Messages[a].receiveDate;}c.msgs.push(innoAgenda.Messages[a]);b--;}}this.body.update(this.msgTpl.applyTemplate(c));},listeners:{render:function(b){this.refreshMsgs();var a={run:function(){msgPanel.fetchLastMsgs();},interval:60000};Ext.TaskMgr.start(a);}}});function setUser(){Ext.getCmp("menuBarUser").setText("Utilisateur : "+innoAgenda.User.name);}var whoDialog=null;var whoPanel=new Ext.Panel({title:"Qui ?",collapsible:true,titleCollapse:true,iconCls:"whoPanelIcon",tbar:[{xtype:"button",text:"Choisir",tooltip:"Choisir un groupe, un utilisateur ou une ressource",cls:"x-btn-text-icon",icon:"img/icons/book_go.png",handler:function(){if(!whoDialog){whoDialog=new UserSelectionDialog();whoDialog.onFinish=function(b,a){iacv.setWho(b,a);whoDialog.onClose();};}whoDialog.show();}},"->",{xtype:"button",tooltip:"Mon agenda",cls:"x-btn-icon",icon:"img/icons/user_go.png",handler:function(){iacv.setWho("user",innoAgenda.User);}},{xtype:"button",tooltip:"L'agenda de mon groupe",cls:"x-btn-icon",icon:"img/icons/group_go.png",handler:function(){iacv.setWho("group",innoAgenda.Group);}},{xtype:"button",tooltip:"Mes vues personnalisées",iconCls:"customGroupIcon",id:"customGroupButton",pointed:false,handler:function(){if(this.pressed){Ext.getCmp("customGroupButton").toggle(false);customGroupMenu.hide();}else{this.disable();Ext.Ajax.request({url:IACV_SERVER_URL+"customgroup.php",success:function(c){c=Ext.util.JSON.decode(c.responseText);customGroupMenu.removeAll();if(c.groups.length==0){customGroupMenu.add({text:"<i>Aucune vue personnalisée définie</i>",disabled:true});}else{for(var d in c.permissions){if(!innoAgenda.Permissions[d]){innoAgenda.Permissions[d]=new Array();}for(var b in c.permissions[d]){innoAgenda.Permissions[d][b]=c.permissions[d][b];}}for(var d in c.prefs){if(!innoAgenda.Prefs[d]){innoAgenda.Prefs[d]=new Array();}for(var a in c.prefs[d]){innoAgenda.Prefs[d][a]=c.prefs[d][a];}}for(var d in c.groups){if(typeof c.groups[d]!="function"){var e=customGroupMenu.add({text:c.groups[d].name,icon:"img/icons/group.png",who:c.groups[d]});e.on("click",function(g,f){iacv.setWho("view",g.who);customGroupMenu.hide();});}}}customGroupMenu.add("-",{text:"Gérer mes vues perso.",icon:"img/icons/group_edit.png",handler:function(){customGroupMenu.hide();innoAgenda.Windows.CustomGroupLoad();innoAgenda.Windows.CustomGroupWindow.show();}});Ext.getCmp("customGroupButton").enable();Ext.getCmp("customGroupButton").toggle(true);customGroupMenu.show(Ext.getCmp("customGroupButton").getEl());},failure:function(a){Ext.getCmp("customGroupButton").enable();Ext.getCmp("customGroupButton").toggle(false);},params:{action:"listWithPerms"}});}},listeners:{mouseout:function(a,b){this.pointed=false;},mouseover:function(a,b){this.pointed=true;}}}],html:"",id:"whoInfo"});var actionPanel=new Ext.Panel({id:"action-panel",region:"west",split:true,collapsible:true,collapseMode:"mini",width:220,minWidth:220,maxWidth:500,border:false,baseCls:"x-border-layout-ct x-plain",bodyStyle:"padding-top:5px;padding-left:5px;",autoScroll:true,animFloat:false,items:[whoPanel,whenPanel,msgPanel]});function initViewPort(){Ext.select("div.iacvWelcomeScreenTop").remove();Ext.select("div.iacvWelcomeScreenBottom").remove();panel=iacv.initPanel();viewport=new Ext.Viewport({layout:"border",id:"innoAgenda",renderTo:Ext.getBody(),items:[{region:"north",xtype:"toolbar",items:[{text:"<b>innoAgenda</b>",cls:"x-btn-text-icon",icon:"img/innoagendaIco.png",menu:iaMenu},{text:"Recherche",cls:"x-btn-text-icon",icon:"img/icons/zoom.png",menu:searchMenu},{text:"Applications",cls:"x-btn-text-icon",icon:"img/icons/application_view_list.png",menu:applicationsMenu},{cls:"x-btn-icon",icon:"img/icons/help.png",menu:helpMenu},"->",{cls:"x-btn-text-icon",icon:"img/icons/user_suit.png",text:"Utilisateur",id:"menuBarUser",menu:userMenu},"-",{cls:"x-btn-icon",qtip:"Quitter innoAgenda",icon:"img/icons/cancel.png",handler:disconnect}],border:true},actionPanel,iacv.panel,{region:"south",xtype:"statusbar",id:"basic-statusbar",defaultText:"<i>Initialisation ...</i>",border:true,iconCls:"x-status-custom",items:[{xtype:"tbtext",text:"Semaine "+new Date().format("W"),id:"statusBarWeek"}]}]});statusBar=Ext.getCmp("basic-statusbar");var b={run:function(){var d=new Date();statusBar=Ext.getCmp("basic-statusbar");statusBar.setStatus({text:"Nous sommes le "+d.format("l d F Y")+", il est "+d.format("H")+"h"+d.format("i")+".",iconCls:"x-status-custom"});},interval:20000};var c=new Ext.util.TaskRunner();c.start(b);setUser();iacv.defaultView();if(innoAgenda.Instance.id=="public"&&innoAgenda.Permissions[innoAgenda.User.id].admin){applicationsMenu.add("-",{text:"Gérer mes utilisateurs",icon:"img/icons/table_gear.png",id:"iacvMenuAdmin",handler:launchAdmin});}else{if(innoAgenda.Permissions[innoAgenda.User.id].admin){applicationsMenu.add("-",{text:"Administration",icon:"img/icons/table_gear.png",id:"iacvMenuAdmin",handler:function(){if(!admin.window){deferLoad("Chargement de l'interface d'administration...",ADMIN_JS,function(){admin.show();});}else{admin.show();}}});}}if((innoAgenda.Instance.id=="public")){var a="L'envoi de fichier n'est pas disponible dans la version gratuite d'innoAgenda.";Ext.getCmp("eventPropertiesFileUploadGrid").viewConfig.emptyText=a;}}
