/* Modified version of Dispatcher from Bubbling Library 1.40; delegate() method now accepts tabIndex */
YAHOO.namespace("plugin");(function(){var I=YAHOO.util.Connect,D=YAHOO.lang,F=YAHOO.util.Event,H=YAHOO.util.Dom,E=YAHOO.util.Dom.get;var N={LOADING:1,DISPATCHED:2,ERROR:3,EMPTY:4,proxy:"/dispatcher.php?uri=",CSSNODE:1,JSNODE:2};var L=/<script([^>]*)>([\s\S]*?)<\/script>/igm,A=/src=(['"]?)([^"']*)\1/i,M=/rel=(['"]?)([^"']*)\1/i,C=/<link([^>]*)(>[\s]*<\/link>|>)/igm,K=/href=(['"]?)([^"']*)\1/i,O=/<style([^>]*)>([\s\S]*?)<\/style>/igm,B=new RegExp("([\\w-.]+)\\s*=\\s*(\".*?\"|'.*?'|\\w+)*","im");var J=new RegExp("url\\s*\\(([^\\)]*)","igm");var G=new RegExp("^((?:http|https)://)((?:\\w+[.|-]?)*\\w+)(/.*)$","i");YAHOO.plugin.Dispatcher=function(){var V={},S={},e=[],P={relative:false,baseURI:document.location},Z="loading",a="yui-dispatchable";function c(p,k){var n={key:["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],q:{name:"queryKey",parser:/(?:^|&)([^&=]*)=?([^&]*)/g},parser:{strict:/^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,loose:/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/}},h=n.parser[k?"strict":"loose"].exec(p),l={},j=14;while(j--){l[n.key[j]]=h[j]||""}l[n.q.name]={};l[n.key[12]].replace(n.q.parser,function(m,i,o){if(i){l[n.q.name][i]=o}});return l}function X(h){if(D.isString(h)){h=h.replace(/^\s*(\S*(\s+\S+)*)\s*$/,"$1");h=h.replace(/^(['|"])*(\S*(?:\s+\S+)*)\1$/,"$2")}return h}function Q(k,h){var j=null,i={};h=h||{};if(D.isString(k)){while(j=B.exec(k)){j[2]=(h.hasOwnProperty(j[1])?h[j[1]]:j[2]);if(j[2]){i[j[1]]=X(j[2])}k=k.replace(B,"")}}return i}function T(h){h=((D.isString(h)&&(h.indexOf("/")>-1))?h:P.baseURI)+"";return h.substr(0,h.lastIndexOf("/")+1)}function g(i,h){if(h&&!G.test(h)&&(h.indexOf("/")!==0)){h=i+h}return h}function R(h){h.onStart=h.before||h.onStart;if(D.isFunction(h.onStart)){h.onStart.apply(h,[h.element]);h.onStart=null}if(!h.underground&&YAHOO.Bubbling){YAHOO.Bubbling.fire("onAsyncRequestStart",{element:h.element})}}function U(h){h.onLoad=h.after||h.onLoad;if(D.isFunction(h.onLoad)){h.onLoad.apply(h,[h.element])}if(!h.underground&&YAHOO.Bubbling){YAHOO.Bubbling.fire("onAsyncRequestEnd",{element:h.element})}}function f(n,j){var o=null,h=true,m=null,l="",k=0;j=j||{};if(V.isAlive(n)){m=S[n].chunks.shift();if(D.isObject(m)&&m.src){j.hash=e.length;for(k=0;k<e.length;k++){if(e[k].uri==m.src){if((e[k].status==N.DISPATCHED)&&!j.override){h=false}else{}j.hash=k;break}}if(h){l=V.firewall(m.src,j,true);if(D.isString(l)&&(l!=="")){e[j.hash]={uri:m.src,proxy:l,status:N.LOADING};if(m.type===N.JSNODE){V.area=n;V.destroyer=S[n].destroyer;j.handle=YAHOO.util.Get.script(l,{onSuccess:function(){e[j.hash].status=N.DISPATCHED;if(j.rel&&YAHOO.Bubbling){YAHOO.Bubbling.fire("onScriptReady",{module:m.rel,src:m.src,uri:l,hash:j.hash})}j.hash=null;f(n,j)},onFailure:function(){f(n,j)},scope:V,data:j})}else{if(m.type===N.CSSNODE){YAHOO.util.Get.css(l,{});e[j.hash].status=N.DISPATCHED;f(n,j)}}}}else{f(n,j)}}else{j.hash=null;Y(n,m.content,j)}}else{V.kill(n);U(j)}}function Y(k,l,i){var h=N.EMPTY;if(l&&(l!=="")){i.scope=(i.scope?i.scope:window);try{h=N.DISPATCHED;this.scriptScope=null;if(!i.hash||(e[i.hash].status!=N.DISPATCHED)){V.area=k;V.destroyer=S[k].destroyer;if(D.isFunction(i.evalRoutine)){this.scriptScope=i.evalRoutine(l,i)}else{this.scriptScope=new (new Function("_container_",l+"; return this;"))(i.scope)}}}catch(j){h=N.ERROR;if(D.isFunction(i.error)){i.error.apply(i,[k,l,e])}else{throw new Error("Dispacher: Script Execution Error ("+j+")")}}}if(D.isNumber(i.hash)){e[i.hash].status=h;i.hash=null}f(k,i)}function b(i,m,h){h.action=(h.action?h.action:"replace");switch(h.action){case"tabview":d(i.get("contentEl"),h);try{i.set("content",m)}catch(l){return false}break;case"update":m=i.innerHTML+m;try{i.innerHTML=m}catch(k){return false}break;case"replace":default:d(i,h);try{i.innerHTML=m}catch(j){return false}break}return true}function d(k,h){var l=h.guid,j=0;if(D.isObject(S[l].destroyer)){S[l].destroyer.fire(k,h)}if(H.inDocument(k)){for(j=0;j<k.childNodes.length;j++){F.purgeElement(k.childNodes[j],true)}}H.addClass(k,a);S[l].destroyer=new YAHOO.util.CustomEvent("destroyer");if(D.isFunction(h.onDestroy)){S[l].destroyer.subscribe(h.onDestroy)}}function W(n,k,j){j=j||{};j.uri=j.uri||null;j.relative=j.relative||P.relative;var i=true,h=false,l=T(j.uri);k=k.replace(O,function(r,q,o,p,m){if(o){V.applyCSS(o,Q(q),j)}return""});k=k.replace(C,function(r,q,o,p,m){if(q){h=q.match(K);if(h){if(j.relative){h[2]=g(l,h[2])}S[n].chunks.push({src:h[2],content:"",type:N.CSSNODE,params:Q(q)})}}return""});k=k.replace(L,function(t,r,p,q,o){if(r){h=r.match(A);if(h){var m=r.match(M);m=(m?m[2]:null);if(j.relative){h[2]=g(l,h[2])}S[n].chunks.push({src:h[2],content:"",type:N.JSNODE,rel:m,params:Q(r)})}}if(p){S[n].chunks.push({src:null,content:p,type:N.JSNODE,params:Q(r)})}return""});return k}if(YAHOO.Bubbling){YAHOO.Bubbling.on("onScriptReady",function(){if(this.src&&!this.hash){e[this.hash].status=N.DISPATCHED}})}V.area=null;V.strictMode=true;V.destroyer=null;V.fetch=function(i,j,h){h=h||{};h.uri=j;var k={success:function(l){if(l.responseText!="undefined"){V.process(i,l.responseText,h,true)}H.removeClass(i,Z)},failure:function(l){if(D.isFunction(h.onError)){h.onError.apply(h,[h.element])}H.removeClass(i,Z)}};if(j){j=V.firewall(j,h);H.addClass(i,Z);h.handle=I.asyncRequest("GET",j,k);h.element=i;R(h);return h.handle}return null};V.process=function(j,k,i,h){var l=null;i=i||{};if(D.isObject(j)||(j=E(j))){l=i.guid||F.generateId(j);this.kill(l);i.element=j;i.content=k;i.guid=l;if(!h){R(i)}if(b(j,W(l,k,i),i)){f(l,i)}}return l};V.delegate=function(j,h,k,i){i=i||{};i.action="tabview";i.uri=j.get("dataSrc")||null;i.tab=j;j.loadHandler.success=function(m){var l=j.get("contentEl");i.tab=l;i.underground=true;V.process(j,m.responseText,i);if(YAHOO.Bubbling){YAHOO.Bubbling.fire("onAsyncRequestEnd",{element:l})}};j.on("activeChange",function(){if(YAHOO.Bubbling&&this.get("active")&&j.get("dataSrc")&&!this.get("cacheData")){YAHOO.Bubbling.fire("onAsyncRequestStart",{element:this.get("contentEl")})}});if(D.isObject(k)){k.addTab(j,h)}};V.applyCSS=function(i,m,j){m=m||{};var h=document.createElement("style"),k=m.href||"";j=j||{};j.uri=j.uri||P.baseURI;j.relative=j.relative||P.relative;if(j.relative){k=T(j.uri);k=g(k,m.href)}k=T(k);i=i.replace(J,function(q,p,o,n){p=X(p);p="url("+g(k,p);return p});h.type="text/css";if(D.isObject(h.styleSheet)){h.styleSheet.cssText=i}else{h.appendChild(document.createTextNode(i))}try{document.getElementsByTagName("head")[0].appendChild(h)}catch(l){throw new Error("Dispacher: CSS Processing Error ("+l+")");return false}return true};V.jsLoader=function(i,h){if(D.isString(i)&&(i!=="")){h=h||{};F.generateId(h);V.kill(h.id);S[h.id].chunks=[{src:i,content:"",type:N.JSNODE,params:{href:i}}];h.underground=true;R(h);f(h.id,h);return h.id}return null};V.cssLoader=function(i,h){if(D.isString(i)&&(i!=="")){h=h||{};F.generateId(h);V.kill(h.id);S[h.id].chunks=[{src:i,content:"",type:N.CSSNODE,params:{href:i}}];h.underground=true;R(h);f(h.id,h);return h.id}return null};V.isAlive=function(h){return(h&&D.isObject(S[h])&&(S[h].chunks.length>0))};V.kill=function(h){if(h&&!D.isObject(S[h])){S[h]={chunks:[],destroyer:null}}else{if(this.isAlive(h)){S[h].chunks=[]}}};V.destroy=function(h){this.kill(h);if(h&&!D.isObject(S[h])){S[h].destroyer.fire(E(h),{})}};V.onDestroy=function(j,h,i){var k=(i?[h,i,true]:[h]);if(D.isObject(S[j])&&D.isObject(S[j].destroyer)){if(D.isObject(i)){S[j].destroyer.subscribe(h,i,true)}else{S[j].destroyer.subscribe(h)}return true}return false};V.init=function(h){h=h||{};h.relative=h.relative||false;P=h};V.firewall=function(k,j,n){var i=null,l=null,h=null;while(k.indexOf("&amp;")>-1){k=k.replace("&amp;","&")}j.proxy=j.proxy||N.proxy;if(D.isFunction(j.firewall)){k=j.firewall.apply(j,[k])}else{if(!j.monolithic&&!n&&j.proxy){h=k.match(G);if(h&&(h[2]!==document.domain)){k=j.proxy+escape(k)}}}return k};V.augmentURI=function(j,h){h=h||{};var k=c(j,this.strictMode),i="";k.queryKey=k.queryKey||{};D.augmentObject(k.queryKey,h,true);if(k.protocol){i+=k.protocol+":"}if(this.strictMode){if(/^(?:[^:\/?#]+:)?\/\//.test(k.source)){i+="//"}}else{if(/^(?:(?![^:@]+:[^:@\/]*@)[^:\/?#.]+:)?\/\//.test(k.source)){i+="//"}}if(k.authority){if(k.userInfo){if(k.user){i+=k.user}if(k.userInfo.indexOf(":")>-1){i+=":"}if(k.password){i+=k.password}i+="@"}if(k.host){i+=k.host}if(k.port){i+=":"+k.port}}if(k.relative){if(k.path){if(k.directory){i+=k.directory}if(k.file){i+=k.file}}i+="?";for(sName in k.queryKey){if(k.queryKey.hasOwnProperty(sName)){i+=sName+"="+k.queryKey[sName]+"&"}}if(k.anchor){i+="#"+k.anchor}}return i};V.toString=function(){return("Dispatcher Manager Plugin (Singlenton)")};return V}()})();YAHOO.util.Dispatcher=YAHOO.plugin.Dispatcher;YAHOO.register("dispatcher",YAHOO.plugin.Dispatcher,{version:"1.5.0",build:"218"});