Ext.override(Ext.form.Field,{fireKey:function(A){if(((Ext.isIE&&A.type=="keydown")||A.type=="keypress")&&A.isSpecialKey()){this.fireEvent("specialkey",this,A)}else{if((Ext.isIE&&A.type=="keydown")||A.type=="keypress"){this.fireEvent(A.type,this,A)}}},initEvents:function(){this.el.on(Ext.isIE?"keydown":"keypress",this.fireKey,this);this.el.on("focus",this.onFocus,this);this.el.on("blur",this.onBlur,this);this.originalValue=this.getValue()}});Ext.override(Ext.Panel,{eachField:function(C,B){var A=function(D){if(D.items){D.items.each(function(E){A(E)},this)}else{switch(D.getXType()){case"checkbox":case"combo":case"datefield":case"field":case"hidden":case"htmleditor":case"numberfield":case"radio":case"textarea":case"textfield":case"trigger":C.call(B,D);break}}};A(this)},isValid:function(){var A=true;this.eachField(function(B){if(B.rendered&&!B.isValid()){A=false}},this);return A},clearInvalidFields:function(){this.eachField(function(A){if(A.rendered&&!A.isValid()){A.clearInvalid()}},this)}});Ext.override(Ext.data.Connection,{doFormUpload:function(E,A,B){var C=Ext.id();var F=document.createElement("iframe");F.id=C;F.name=C;F.className="x-hidden";if(Ext.isIE){F.src=Ext.SSL_SECURE_URL}document.body.appendChild(F);if(Ext.isIE){document.frames[C].name=C}var D=Ext.getDom(E.form);D.target=C;D.method="POST";D.enctype=D.encoding="multipart/form-data";if(B){D.action=B}var L,J;if(A){L=[];A=Ext.urlDecode(A,false);for(var H in A){if(A.hasOwnProperty(H)){J=document.createElement("input");J.type="hidden";J.name=H;J.value=A[H];D.appendChild(J);L.push(J)}}}function G(){var N={responseText:"",responseXML:null};N.argument=E?E.argument:null;try{var P;if(Ext.isIE){P=F.contentWindow.document}else{P=(F.contentDocument||window.frames[C].document)}if(P&&P.body){N.responseText=P.body.innerHTML}if(P&&P.XMLDocument){N.responseXML=P.XMLDocument}else{N.responseXML=P}}catch(O){}Ext.EventManager.removeListener(F,"load",G,this);this.fireEvent("requestcomplete",this,N,E);Ext.callback(E.success,E.scope,[N,E]);Ext.callback(E.callback,E.scope,[E,true,N]);setTimeout(function(){Ext.removeNode(F)},100)}Ext.EventManager.on(F,"load",G,this);try{D.submit()}catch(M){}if(L){for(var I=0,K=L.length;I<K;I++){Ext.removeNode(L[I])}}}});Ext.override(Ext.form.Action.Submit,{success:function(response){try{eval("("+response.responseText+")")}catch(e){this.response=response;this.form.afterAction(this,false);return }var result=this.processResponse(response);if(result===true||result.success){this.form.afterAction(this,true);return }if(result.errors){this.form.markInvalid(result.errors);this.failureType=Ext.form.Action.SERVER_INVALID}this.form.afterAction(this,false)}});Ext.override(Ext.grid.ColumnModel,{isMenuDisabled:function(A){return !!this.config[A].menuDisabled}});Ext.override(Ext.grid.GridView,{handleHdOver:function(D,A){var C=this.findHeaderCell(A);if(C&&!this.headersDisabled){this.activeHd=C;this.activeHdIndex=this.getCellIndex(C);var B=this.fly(C);this.activeHdRegion=B.getRegion();if(!this.cm.isMenuDisabled(this.activeHdIndex)){B.addClass("x-grid3-hd-over");this.activeHdBtn=B.child(".x-grid3-hd-btn");if(this.activeHdBtn){this.activeHdBtn.dom.style.height=(C.firstChild.offsetHeight-1)+"px"}}}}});Ext.LoadMask.prototype.msg="Se incarca...";Ext.Updater.defaults.indicatorText='<div class="loading-indicator">Se incarca...</div>';Ext.override(Ext.form.ComboBox,{loadingText:"Se incarca..."});Ext.override(Ext.form.TextField,{minLengthText:"Lungimea minima pentru acest camp este {0}",maxLengthText:"Lungimea maxima pentru acest camp este {0}",blankText:"Acest camp este obligatoriu"});Ext.override(Ext.form.NumberField,{minText:"Valoarea minima pentru acest camp este {0}",maxText:"Valoarea maxima pentru acest camp este {0}",nanText:"{0} nu este un numar valid"});Ext.form.VTypes.emailText='Introduceti o adresa de email valida in formatul "nume@domeniu.ro(com.. etc)"';Ext.namespace("Cici");Cici.AspWebServiceProxy=function(A){Cici.AspWebServiceProxy.superclass.constructor.call(this);Ext.apply(this,A);this.addEvents("beforeload","load")};Ext.extend(Cici.AspWebServiceProxy,Ext.data.DataProxy,{load:function(B,C,H,I,J){var D={callback:H,reader:C,arg:J,scope:I};var F=this;var A=function(K){F.loadResponse(K,D)};var E=[];for(var G in this.params){if(G!="query"){E.push(this.params[G])}}E.push(A);E.push(this.handleErrorResponse);this.webServiceProxyMethod.apply(this.webServiceProxy,E)},handleErrorResponse:function(B,C,A){Ext.Msg.alert("Error...","Error while calling web service method "+B.get_message())},loadResponse:function(response,userContext,methodName){if("string"==typeof (response)){response=eval("("+response+")")}var result=userContext.reader.readRecords(response);userContext.callback.call(userContext.scope,result,userContext.arg,true)}});Cici.SearchField=Ext.extend(Ext.form.TwinTriggerField,{initComponent:function(){Cici.SearchField.superclass.initComponent.call(this);this.on("specialkey",function(A,B){if(B.getKey()==B.ENTER){this.onTrigger2Click()}},this);this.addEvents("clear")},validationEvent:false,validateOnBlur:false,trigger1Class:"x-form-clear-trigger",trigger2Class:"x-form-search-trigger",width:180,paramName:"query",onTrigger1Click:function(){if(this.hasSearch){this.el.dom.value="";this.triggers[0].hide();this.hasSearch=false;this.focus();this.fireEvent("clear")}},onTrigger2Click:function(){var A=this.getRawValue();this.onSearch(A)},onSearch:function(A){}});Cici.Portlet=Ext.extend(Ext.Panel,{anchor:"100%",frame:true,collapsible:true,draggable:false,cls:"x-portlet"});Ext.reg("portlet",Cici.Portlet);Cici.PortalColumn=Ext.extend(Ext.Container,{layout:"anchor",autoEl:"div",defaultType:"portlet",cls:"x-portal-column"});Ext.reg("portalcolumn",Cici.PortalColumn);Cici.Portal=Ext.extend(Ext.Panel,{layout:"column",autoScroll:true,cls:"x-portal",defaultType:"portalcolumn",initComponent:function(){Cici.Portal.superclass.initComponent.call(this);this.addEvents({validatedrop:true,beforedragover:true,dragover:true,beforedrop:true,drop:true})},initEvents:function(){Cici.Portal.superclass.initEvents.call(this);this.dd=new Cici.Portal.DropZone(this,this.dropConfig)}});Ext.reg("portal",Cici.Portal);Cici.Portal.DropZone=function(A,B){this.portal=A;Ext.dd.ScrollManager.register(A.body);Cici.Portal.DropZone.superclass.constructor.call(this,A.bwrap.dom,B);A.body.ddScrollConfig=this.ddScrollConfig};Ext.extend(Cici.Portal.DropZone,Ext.dd.DropTarget,{ddScrollConfig:{vthresh:50,hthresh:-1,animate:true,increment:200},createEvent:function(A,D,C,B,F,E){return{portal:this.portal,panel:C.panel,columnIndex:B,column:F,position:E,data:C,source:A,rawEvent:D,status:this.dropAllowed}},notifyOver:function(Q,O,R){var D=O.getXY(),A=this.portal,J=Q.proxy;if(!this.grid){this.grid=this.getGrid()}var B=A.body.dom.clientWidth;if(!this.lastCW){this.lastCW=B}else{if(this.lastCW!=B){this.lastCW=B;A.doLayout();this.grid=this.getGrid()}}var C=0,H=this.grid.columnX,I=false;for(var M=H.length;C<M;C++){if(D[0]<(H[C].x+H[C].w)){I=true;break}}if(!I){C--}var L,G=false,F=0,P=A.items.itemAt(C),K=P.items.items;for(var M=K.length;F<M;F++){L=K[F];var N=L.el.getHeight();if(N!==0&&(L.el.getY()+(N/2))>D[1]){G=true;break}}var E=this.createEvent(Q,O,R,C,P,G&&L?F:P.items.getCount());if(A.fireEvent("validatedrop",E)!==false&&A.fireEvent("beforedragover",E)!==false){J.getProxy().setWidth("auto");if(L){J.moveProxy(L.el.dom.parentNode,G?L.el.dom:null)}else{J.moveProxy(P.el.dom,null)}this.lastPos={c:P,col:C,p:G&&L?F:false};this.scrollPos=A.body.getScroll();A.fireEvent("dragover",E);return E.status}else{return E.status}},notifyOut:function(){delete this.grid},notifyDrop:function(H,D,C){delete this.grid;if(!this.lastPos){return }var F=this.lastPos.c,B=this.lastPos.col,G=this.lastPos.p;var A=this.createEvent(H,D,C,B,F,G!==false?G:F.items.getCount());if(this.portal.fireEvent("validatedrop",A)!==false&&this.portal.fireEvent("beforedrop",A)!==false){H.proxy.getProxy().remove();H.panel.el.dom.parentNode.removeChild(H.panel.el.dom);if(G!==false){F.insert(G,H.panel)}else{F.add(H.panel)}F.doLayout();this.portal.fireEvent("drop",A);var I=this.scrollPos.top;if(I){var E=this.portal.body.dom;setTimeout(function(){E.scrollTop=I},10)}}delete this.lastPos},getGrid:function(){var A=this.portal.bwrap.getBox();A.columnX=[];this.portal.items.each(function(B){A.columnX.push({x:B.el.getX(),w:B.el.getWidth()})});return A}});Cici.ManagementWindow=function(B){Ext.apply(this,B);this.state="";var A=[];if(B.quickSearch===true){A.push(new Cici.grid.Search({minLength:1,columnName:B.nameCol,width:100}))}if(this.filters instanceof Array&&this.filters.length>0){A.push(new Cici.grid.GridFilters({items:this.filters}))}this.grid=new Ext.grid.GridPanel({store:this.store,columns:this.columnModel,trackMouseOver:false,viewConfig:{forceFit:true},tbar:[{text:"Adauga",iconCls:"grid-add-icon",handler:function(){this.state="insert";this.grid.getEl().mask();this.editPanel.getEl().unmask();this.clearFields();this.editPanel.items.first().focus()},scope:this},"-",{text:"Modifica",iconCls:"grid-edit-icon",handler:function(){if(!Ext.isEmpty(this.grid.getSelectionModel().getSelected())){this.state="edit";this.grid.getEl().mask();this.editPanel.getEl().unmask();this.editPanel.items.first().focus()}},scope:this},"-",{text:"Sterge",iconCls:"grid-delete-icon",handler:function(){if(!("function"==typeof (this.deleteMethod))){return }if(!this.fireEvent("beforeremove",this)){return }Ext.MessageBox.show({buttons:Ext.MessageBox.YESNO,closable:false,icon:Ext.MessageBox.QUESTION,modal:true,msg:"Stergeti "+this.grid.getSelectionModel().getSelected().get(this.nameCol)+" ?",fn:function(G){if(G=="yes"){this.grid.getEl().mask('<img src="Include/extjs/resources/images/default/grid/loading.gif" style="width:16px;height:16px;" align="absmiddle" width="16" height="16">&#160;Se sterge...');var F=this.grid.getSelectionModel().getSelected();var H=this;var I=function(J){this.resetFields();this.editPanel.getEl().unmask();this.editPanel.getEl().mask();this.grid.getEl().unmask()};var E=[];E.push(F.get(this.idCol));E.push(function(J){if(H.grid.getSelectionModel().hasNext()){H.grid.getSelectionModel().selectNext()}else{if(H.grid.getSelectionModel().hasPrevious()){H.grid.getSelectionModel().selectPrevious()}}H.grid.getStore().remove(F);I.call(H,F)});E.push(function(J){Services.onError(J,function(){I.call(H,F)})});this.deleteMethod.apply(this.deleteMethod,E)}},scope:this})},scope:this}],sm:new Ext.grid.RowSelectionModel({singleSelect:true}),frame:false,loadMask:true,region:"center",iconCls:"icon-grid",bbar:["0 linii. "],plugins:A});this.grid.on("render",function(E){if(!(this.allowDelete===true)){E.getTopToolbar().items.last().hide()}},this);var D=function(F){var E=this.grid.bottomToolbar;E.items.first().td.innerHTML=F.getCount().toString()+" linii. ";if(this.grid.plugins instanceof Array&&this.grid.plugins.length>0&&this.grid.plugins[0].field){this.grid.plugins[0].field.setValue("")}};this.store.on("add",D,this);this.store.on("remove",D,this);this.store.on("datachanged",D,this);this.grid.on("sortchange",function(){var E=this.grid.getSelectionModel().getSelected();if(!Ext.isEmpty(E)){this.grid.getView().ensureVisible(this.grid.getStore().indexOf(E),0,false)}},this);if(this.filters instanceof Array&&this.filters.length>0){A[A.length-1].on("datafiltered",function(F){this.resetFields();var E=this.grid.getSelectionModel().getSelected();if(!Ext.isEmpty(E)){this.grid.getView().ensureVisible(this.grid.getStore().indexOf(E),0,false)}else{if(this.grid.getStore().getCount()>0){this.grid.getSelectionModel().selectFirstRow();this.grid.getView().ensureVisible(0,0,false);this.grid.getView().focusRow(0)}}},this)}this.grid.getSelectionModel().on("rowselect",function(H,F,E){var G=E;this.editPanel.eachField(function(I){var J=I.id.split("-");I.setValue(G.get(J[J.length-1]))},this);this.editPanel.clearInvalidFields();this.fireEvent("updatefields",E,this.editPanel.items)},this);if(Ext.isIE===true&&Ext.isIE7===false){this.grid.on("resize",this.onResize)}for(var C=0;C<this.editFields.length;C++){this.editFields[C].id=this.id+"-"+this.editFields[C].id}if(!B.editWidth){B.editWidth=390}this.editPanel=new Ext.Panel({region:"east",split:true,width:B.editWidth,minWidth:B.editWidth,maxWidth:B.editWidth,height:100,layout:"form",bodyStyle:"padding:5px 5px 0",frame:false,defaults:{selectOnFocus:true,width:B.editWidth-120,msgTarget:"under"},items:this.editFields,tbar:["->",{id:B.id+"-grid-btn-save",text:"Salvare",iconCls:"grid-save-icon",handler:function(){if(!this.editPanel.isValid()){Ext.MessageBox.show({buttons:Ext.MessageBox.OK,closable:false,icon:Ext.MessageBox.ERROR,modal:true,msg:"Trebuie sa validati toate campurile inainte de a salva !"});return }var F=this.grid.getSelectionModel().getSelected();var H=function(I){this.editPanel.getEl().unmask();this.editPanel.getEl().mask();this.grid.getEl().unmask();if(!Ext.isEmpty(I)){if(this.state=="edit"){this.grid.getView().focusRow(this.grid.getStore().indexOf(I))}else{this.grid.getSelectionModel().selectRow(this.grid.getStore().indexOf(I));this.grid.getView().focusRow(this.grid.getStore().indexOf(I))}}this.state=""};var G=this;this.editPanel.getEl().mask('<img src="Include/extjs/resources/images/default/grid/loading.gif" style="width:16px;height:16px;" align="absmiddle" width="16" height="16">&#160;Saving...');switch(this.state){case"edit":var E=[];E.push(F.get(this.idCol));this.editPanel.eachField(function(I){var J=I.getValue();if(J instanceof Date){J=J.format0("M/y/d")}E.push(J)},this);E.push(function(I){G.editPanel.eachField(function(K){var J=K.id.split("-");var L=K.getValue();if(L instanceof Date){L=L.format0("M/d/y")}F.set(J[J.length-1],L)},G);G.fireEvent("beforecommit",F,G.editPanel.items);F.commit();H.call(G,F)});E.push(function(I){Services.onError(I,function(){G.resetFields();H.call(G,F)})});if(this.fireEvent("beforeedit",E,this.editPanel.items)){this.editMethod.apply(this.editMethod,E)}break;case"insert":E=[];this.editPanel.eachField(function(I){var J=I.getValue();if(J instanceof Date){J=J.format0("M/y/d")}E.push(J)},this);E.push(function(I){var K={};K[G.idCol]=I;var J=new G.recordModel(K);G.editPanel.eachField(function(M){var L=M.id.split("-");J.set(L[L.length-1],M.getValue())},G);G.fireEvent("beforecommit",J,G.editPanel.items);J.commit();G.grid.getStore().add(J);H.call(G,J)});E.push(function(I){Services.onError(I,function(){G.resetFields();H.call(G,F)})});if(this.fireEvent("beforeinsert",E,this.editPanel.items)){this.addMethod.apply(this.addMethod,E)}break}},scope:this},{id:B.id+"-grid-btn-cancel",text:"Anulare",iconCls:"grid-cancel-icon",handler:function(){this.editPanel.getEl().mask();this.resetFields();this.grid.getEl().unmask();if(!Ext.isEmpty(this.grid.getSelectionModel().getSelected())){this.grid.getView().focusRow(this.grid.getStore().indexOf(this.grid.getSelectionModel().getSelected()))}this.state=""},scope:this}]});if(Ext.isIE===true&&Ext.isIE7===false){this.editPanel.on("resize",this.onResize)}this.window=new Ext.Window({closable:true,closeAction:"hide",draggable:true,title:B.title,constrainHeader:true,id:Ext.isEmpty(this.id)?undefined:this.id+"-window",plain:true,resizable:false,modal:true,width:B.width,minWidth:B.minWidth,height:B.height,minHeight:B.minHeight,resizable:true,layout:"border",items:[this.grid,this.editPanel]});this.window.on("beforehide",function(){if(this.state!=""){return false}},this);Cici.ManagementWindow.superclass.constructor.call(this);this.addEvents("updatefields","beforeinsert","beforeedit","beforeremove","beforecommit")};Ext.extend(Cici.ManagementWindow,Ext.util.Observable,{title:"Management",nameCol:"Name",idCol:"ID",loadAllStores:false,allowDelete:true,show:function(C,E,B){var D=E,A=B;this.window.show(C,function(){this.editPanel.getEl().mask();this.store.load({callback:function(){var G=new Ext.util.DelayedTask(function(H){var I=true;if("undefined"!=typeof (F)){if(F!=0){H.delay(1,undefined,undefined,[H]);return }}if(I&&this.grid.getStore().getCount()>0){this.grid.getSelectionModel().selectFirstRow();this.grid.focus(false,true);this.grid.getView().focusRow(0)}},this);G.delay(1,undefined,undefined,[G])},scope:this});if(this.loadAllStores){this.grid.getEl().mask('<img src="Include/extjs/resources/images/default/grid/loading.gif" style="width:16px;height:16px;" align="absmiddle" width="16" height="16">&#160;Se incarca...');var F=0;this.editPanel.eachField(function(G){if("undefined"!=typeof (G.store)&&(G.store instanceof Ext.data.Store)&&!(G.store instanceof Ext.data.SimpleStore)){F++;G.store.load({callback:function(){F--;if(F==0){this.grid.getEl().unmask()}},scope:this})}},this);if(F==0){this.grid.getEl().unmask()}}if("function"==typeof (D)){D.call(A)}},this)},hide:function(B,C,A){this.window.hide(B,C,A)},resetFields:function(){var A=this.grid.getSelectionModel().getSelected();if(!Ext.isEmpty(A)){this.editPanel.eachField(function(B){var C=B.id.split("-");B.setValue(A.get(C[C.length-1]));B.clearInvalid()},this)}else{this.clearFields()}},clearFields:function(){this.editPanel.eachField(function(A){A.setValue("");A.clearInvalid()})},onResize:function(B){var A=B.getEl();if(!Ext.isEmpty(A)&&A.isMasked()){A.unmask();A.mask()}}});Ext.namespace("Cici.grid");Cici.grid.GridFilters=function(A){Ext.apply(this,A);Cici.grid.GridFilters.superclass.constructor.call(this);this.addEvents("datafiltered")};Ext.extend(Cici.grid.GridFilters,Ext.util.Observable,{init:function(A){this.grid=A;A.onRender=A.onRender.createSequence(this.onRender,this);A.reconfigure=A.reconfigure.createSequence(this.reconfigure,this)},onRender:function(){var D=this.grid;var F=Ext.get(D.el.dom.firstChild.firstChild.id);var G=F.createChild("<div></div>");var B=new Ext.Toolbar({renderTo:G});B.add("Filtre: ","-");this.filterMethod=function(J,K){for(var H=0;H<this.items.length;H++){var I=this.items[H];if(!Ext.isEmpty(I.filterMethod)){if(!I.filterMethod(J,this.items[H].getValue())){return false}}}return true};if(this.items instanceof Array){for(var C=0;C<this.items.length;C++){var E=this.items[C];if(!Ext.isEmpty(E.xtype)){switch(E.xtype){case"combo":this.filterRecordModel=Ext.data.Record.create([{name:"ID"},{name:"Name"}]);var A=new Ext.form.ComboBox({editable:false,forceSelection:true,store:new Ext.data.Store({proxy:new Cici.AspWebServiceProxy({webServiceProxy:E.webService,webServiceProxyMethod:E.webMethod,params:E.webMethodParams}),baseParams:{},reader:new Ext.data.JsonReader(E.readerConfig,this.filterRecordModel)}),emptyText:"All",displayField:"Name",valueField:"ID",triggerAction:"all"});A.store.on("load",function(H){H.insert(0,[new this.filterRecordModel({ID:0,Name:"All"})])},this);A.on("select",function(J,I,H){D.getStore().filterBy(this.filterMethod,this);this.fireEvent("datafiltered",J)},this);break;case"checkbox":var A=new Ext.form.Checkbox({});A.on("check",function(I,H){D.getStore().filterBy(this.filterMethod,this);this.fireEvent("datafiltered",I)},this);break}}A.filterMethod=E.filterMethod;B.add(E.label+": ",A,"-");this.items[C]=A}if(D.getStore().getCount()==0){D.getStore().on("load",function(){D.getStore().filterBy(this.filterMethod,this)},this)}else{D.getStore().filterBy(this.filterMethod,this)}}}});var Login=function(){var H,A,C,J,E,B,F,G,D;var I=false;return{init:function(){J=new Ext.form.TextField({fieldLabel:"Adresa email",selectOnFocus:true,name:"email",blankText:"Adresa de email este obligatorie !",validateOnBlur:false,allowBlank:false,msgTarget:"under"});J.on("invalid",function(){I=true});J.on("valid",function(){I=false});E=new Ext.form.TextField({fieldLabel:"Parola",inputType:"password",name:"pass"});E.on("specialkey",function(L,K){if(K.getKey()==13){Login.onLogin()}});C=new Ext.form.FormPanel({baseCls:"x-plain",defaults:{width:200},bodyStyle:"padding:5px 5px 0",defaultType:"textfield",frame:false,height:100,hideBorders:true,id:"login-form",items:[J,E],labelWidth:120});A=C.getForm();H=new Ext.Window({buttons:[{handler:Login.onLogin,scope:Login,text:"Autentificare"},{handler:Login.onForgetPassword,scope:Login,text:"Am uitat parola ?",disabled:true}],buttonAlign:"right",closable:true,closeAction:"hide",draggable:true,height:170,id:"login-window",plain:true,resizable:false,modal:true,title:"Autentificare...",width:355,items:C});H.on("show",Login.onShow);H.on("hide",Login.onHide)},show:function(K,M,N,L){if(K){B=K.loginHandler;F=K.loginScope;G=K.forgotHandler;D=K.forgotScope}H.show(M,N,L)},hide:function(L,M,K){H.hide(L,M,K)},onLogin:function(){if("function"==typeof (B)&&A.isValid()){B.call(F,A,H)}},onForgetPassword:function(){if("function"==typeof (G)){G.call(D)}},onShow:function(L){A.findField("pass").setValue("");var K=A.findField("email");if(!I){K.setValue("");K.clearInvalid()}K.focus(true,10)},onHide:function(L){var K=A.findField("email");K.clearInvalid()}}}();Ext.onReady(Login.init,Login,true);

