/*
Copyright (c) 2008, Bubbling Library Team. All rights reserved.
Portions Copyright (c) 2008, Yahoo!, Inc. All rights reserved.
Code licensed under the BSD License:
http://www.bubbling-library.com/eng/licence
version: 2.0
*/
(function(){var D=YAHOO.lang,C=YAHOO.util.Connect,A=YAHOO.util.Event,B=YAHOO.util.Dom,E=YAHOO.util.Dom.get,F=YAHOO.plugin.Dispatcher;YAHOO.plugin.WizardManager=function(){var P={},M=null,T={},X="yui-cms-wizard",I="yui-cms-form",H="dynamic",R="loading",J="yuicmswizard",O={status:false,handle:null,done:false,uri:null,moreGetData:{},morePostData:{},onCancel:null,onReady:null,onFinish:null,onSubmit:null,values:{}};var K={success:function(Z){var Y=P._area=Z.argument.area;F.process(Y.element,Z.responseText,{onStart:function(){},error:function(){L(Y)},onLoad:function(){B.removeClass(Y.element,R);if(Y.values._wizardfinish||Y.done){W(Y)}else{if(Y.values._wizardcancel){N(Y)}}U(Y)},firewall:Y.firewall},true);P._area=null},failure:function(Y){L(Y.argument.area)}};function Q(Z,Y,a,d,b){B.addClass(Z.element,R);a=F.firewall(a,Z);if(D.isFunction(Z.onStart)){Z.onStart.apply(Z,[Z.values]);Z.onStart=null}if(YAHOO.Bubbling){YAHOO.Bubbling.fire("onAsyncRequestStart",{element:Z.element})}Z.handle=C.asyncRequest(Y,a,d,b)}function U(Y){var d=[],b,a,h,f,g,e;if(D.isObject(Y)&&D.isObject(Y.element)){if(!Y.overheat){d=[];d.merge(Y.element.getElementsByTagName("button"));for(a=0;a<d.length;a++){if(!B.getAncestorByClassName(d[a],"yui-button")){h=new YAHOO.widget.Button(d[a],{className:d[a].className})}}d=[];d.merge(Y.element.getElementsByTagName("input"));for(a=0;a<d.length;a++){h=d[a].getAttribute("type").toLowerCase();f=d[a].getAttribute("value");if(D.isObject(YAHOO.widget.Button)&&((h=="submit")||(h=="reset")||(h=="button"))){f='<div class="i">'+f+"</div>";h=new YAHOO.widget.Button(d[a],{label:f,className:d[a].className})}}}d=[];d.merge(Y.element.getElementsByTagName("form"));for(a=0;a<d.length;a++){g=d[a];if(!B.hasClass(g,I)){B.addClass(g,I);Y.morePostData[J]=Y.id;var Z={upload:K.success,success:K.success,failure:K.failure,argument:{area:Y}};A.on(g,"submit",function(l){var j=this,k=null,i=j.getAttribute("action",2)||Y.uri,c=(j.getAttribute("method").toLowerCase()=="post"?"POST":"GET");C._formNode=j;for(k in Y.morePostData){if(Y.morePostData.hasOwnProperty(k)){C.appendPostData(k+"="+Y.morePostData[k])}}S(Y);if(D.isObject(YAHOO.widget.Button)){YAHOO.widget.Button.addHiddenFieldsToForm(j)}if(!B.hasClass(j,"yui-cms-simpleform")){i=F.augmentURI(i,Y.moreGetData);C.setForm(j,B.hasClass(j,"yui-cms-upload"));Q(Y,c,i,Z);C.resetFormState();A.stopEvent(l)}})}}Y.status=true;G(Y)}}function V(b,a){var Z,Y="",c;a=new String(D.isString(a)?a:b.uri);a+=((a.indexOf("?")==-1)?"?":"&")+J+"="+b.id;a=F.augmentURI(a,b.moreGetData);c=F.obj2query(b.morePostData);if(D.isObject(b)&&D.isObject(b.element=E(b.id))&&a){var d={success:K.success,failure:K.failure,argument:{area:b}};Q(b,b.loadMethod,a,d,c);if(YAHOO.Bubbling){YAHOO.Bubbling.fire("onNavigate",{state:b.id+escape(a),control:"wizard",uri:a,area:b,restore:function(){V(b,a)}})}}}var S=function(Y){if(D.isFunction(Y.onSubmit)){Y.onSubmit.apply(Y,[Y.values])}};var W=function(Y){if(D.isFunction(Y.onFinish)){Y.onFinish.apply(Y,[Y.values])}};var N=function(Y){if(D.isFunction(Y.onCancel)){Y.onCancel.apply(Y,[Y.values])}};var L=function(Y){if(D.isFunction(Y.onError)){Y.onError.apply(Y,[Y.values])}};var G=function(Y){if(D.isFunction(Y.onReady)){Y.onReady.apply(Y,[Y.values])}};P.getStatus=function(Y){if(D.isObject(T[Y])){return T[Y].status}return false};P.getValues=function(Y){if(this.getStatus(Y)){return T[Y].values}return false};P.setValues=function(b,Y){if(this.getStatus(b)){var Z=T[b];try{Z.values=D.JSON.parse(Y)}catch(a){L(Z)}return Z.values}return null};P.valuer=function(Y){var Z=this._area;if(D.isString(Y)&&D.JSON){try{Y=D.JSON.parse(Y)}catch(a){Y={};L(Z)}}Y=(D.isString(Y)||!D.isObject(Y)?{}:Y);D.augmentObject(Z.values,Y,true);return Z.values};P.finisher=function(){if(this._area){this._area.done=true}};P.jump=function(Z,Y){if(this.getStatus(Z)){V(T[Z],Y);return true}return false};P.init=function(a,Y){var Z=Y||O;if(D.isObject(a)){a=A.generateId(a)}if(D.isObject(T[a])){D.augmentObject(Z,T[a],true)}Z.morePostData=Z.morePostData||{};Z.moreGetData=Z.moreGetData||{};if(D.isObject(Z.dataMask)){D.augmentObject(Z.morePostData,Z.dataMask,true);D.augmentObject(Z.moreGetData,Z.dataMask,true)}Z.loadMethod=((D.isString(Z.loadMethod)&&Z.loadMethod.toLowerCase()=="post")?"POST":"GET");if(Z.dynamic){B.addClass(Z.id,H)}B.addClass(Z.id,X);T[Z.id]=Z;return Z};P.add=function(b,Z){var a=Z||O,Y=a.id||b||a.element;if(D.isString(Y)&&(Y!=="")){Y=E(Y)}if(D.isObject(Y)&&D.isString(a.uri)&&(a.uri!=="")){a.id=A.generateId(Y);a.element=Y;a.handle=null;a.status=false;a.values={};this.remove(a.id);this.init(b,a);V(T[b])}return T[b]};P.adopt=function(b,Z){var a=Z||O,Y=a.id||b||a.element;if(D.isString(Y)&&(Y!=="")){Y=E(Y)}if(D.isObject(Y)){a.id=A.generateId(Y);a.element=Y;a.handle=null;a.status=false;a.values={};this.remove(a.id);this.init(b,a);U(T[a.id])}return T[b]};P.delegate=function(Z,a,Y){Y=Y||{};Y.action="tabview";Y.uri=Z.get("dataSrc")||null;Y.tab=Z;Y.moreGetData=Y.moreGetData||{};if(D.isObject(Y.dataMask)){D.augmentObject(Y.moreGetData,Y.dataMask,true)}Z.set("dataSrc",F.augmentURI(Y.uri,Y.moreGetData));Z.loadHandler.success=function(c){var b=Z.get("contentEl");Y.tab=b;Y.underground=true;F.process(Z,c.responseText,Y);B.addClass(b,H);P.adopt(b,Y);if(YAHOO.Bubbling){YAHOO.Bubbling.fire("onAsyncRequestEnd",{element:b})}};Z.on("activeChange",function(){if(YAHOO.Bubbling&&this.get("active")&&Z.get("dataSrc")&&!this.get("cacheData")){YAHOO.Bubbling.fire("onAsyncRequestStart",{element:this.get("contentEl")})}});if(D.isObject(a)){a.addTab(Z)}};P.remove=function(Y){if(D.isObject(Y)){Y=A.generateId(Y)}if(Y&&(T[Y])){T[Y].handle=null;T[Y]=null}T[Y]=[]};P.reload=function(Z,Y){if(D.isObject(Z)){Z=A.generateId(Z)}if(Z&&(T[Z])){V(T[Z],Y)}};return P}()})();Array.prototype.merge=function(A){var B;for(B=0;B<A.length;B++){this.push(A[B])}};YAHOO.util.WizardManager=YAHOO.plugin.WizardManager;YAHOO.register("wizard",YAHOO.plugin.WizardManager,{version:"2.0",build:"234"});