var WizardStep=Ext.extend(Ext.util.Observable,{constructor:function(b){this.addEvents({change:true,validate:true});this.listeners=b.listeners;WizardStep.superclass.constructor.call(this,b);var a=null;this.validate=function(){if(this.fireEvent("validate",this)){this.setState(a|1)}else{this.setState(a&~1)}};this.isValid=function(){return a!=null&&((a&1)!=0)};this.setState=function(d){if(a!=d){var c=a;a=d;this.fireEvent("change",this,c,a)}};this.resetState=function(){this.setState(null)}}});var WizardController=Ext.extend(Ext.util.Observable,{constructor:function(c){this.addEvents({change:true,step:true});this.listeners=c.listeners;WizardController.superclass.constructor.call(this,c);var e=[];var b=null;var d=function(g){if(g==null||g==-1){return}for(var f=e.length-1;f>g;--f){e[f].resetState()}};var a=function(g,f,h){var i=e.indexOf(g);this.fireEvent("change",this,i,f,h);d(i)};this.addStep=function(f){f.addListener("change",a,this);e.push(f)};this.start=function(){this.gotoStep(0)};this.gotoStep=function(h){if(h<0||h>=e.length){return false}if(b==h){return true}var g=h-1;var i=g<0||e[g].isValid();if(i){var f=b;b=h;e[b].validate();this.fireEvent("step",this,f,b);return true}else{return false}};this.getSteps=function(){return e};this.currentStepId=function(){return b};this.hasPrev=function(){return b!=null&&b>0};this.hasNext=function(){return b!=null&&b<e.length-1};this.isCurrentValid=function(){return e[b].isValid()}}});var WizardRenderer=function(h,f,d,p){var l=h;var n=Ext.get(f);var j=Ext.get(d);var c=[];for(var g=0;g<p.length;++g){var k=Ext.get(p[g]);k.setVisibilityMode(Ext.Element.DISPLAY);c.push(k)}var m=null;var o=null;var a=null;var b=null;if(j){m=j.createChild({tag:"div",cls:"wizard_btn_wrapper"});o=j.createChild({tag:"div",cls:"wizard_btn_wrapper"});a=new Ext.Button({renderTo:m,xtype:"button",text:"Back",disabled:true,width:70,listeners:{click:function(e,i){l.gotoStep(l.currentStepId()-1)}}});b=new Ext.Button({renderTo:o,xtype:"button",text:"Next",disabled:true,width:70,listeners:{click:function(e,i){l.gotoStep(l.currentStepId()+1)}}})}l.addListener("step",function(i,e,q){if(c[e]){c[e].setVisible(false)}if(c[q]){c[q].setVisible("block")}if(a){a.setDisabled(!l.hasPrev())}if(b){b.setDisabled(!l.hasNext()||!l.isCurrentValid())}},this);l.addListener("change",function(i,r,e,q){if(a){a.setDisabled(!l.hasPrev())}if(b){b.setDisabled(!l.hasNext()||!l.isCurrentValid())}},this);this.show=function(){l.start()}};
