/*
********************************************************
Copyright @ WebOnWebOff.com, by D. Miller
You may reuse this script, on condition that this copyright text is kept
www.WebOnWebOff.com

y_AjaxTabs vs. 1.0.0
********************************************************
*/
ylib.namespace('ylib.widget');ylib.widget.AjaxTabs=function(aTabs,startIndex,loadingElementID,trackingElementID,errorHandler){this.activeIndex=startIndex?startIndex:0;this.aTabs=aTabs?aTabs:[];this.loading=loadingElementID?loadingElementID:'';this.tracker=trackingElementID?trackingElementID:'';this.errorHandler=errorHandler;this.contentLoader;this.processing=false;this.SetUp();this.ShowTabs();};ylib.widget.AjaxTabs.prototype={SetUp:function(){var elem;for(var i=0;i<this.aTabs.length;i++){elem=xGetElementById(this.aTabs[i].header);elem.onclick=this.ActivateTab;elem.tabObj=this;}},ShowTabs:function(){if(this.processing==true)return;this.processing=true;var elem;for(var i=0;i<this.aTabs.length;i++){elem=xGetElementById(this.aTabs[i].header);if(i==this.activeIndex){elem.className='active';}else{elem.className='';}}for(var i=0;i<this.aTabs.length;i++){elem=xGetElementById(this.aTabs[i].content);if(i==this.activeIndex){xDisplay(elem,'');xVisibility(elem,1);}else{xDisplay(elem,'none');}}elem=xGetElementById(this.tracker);if(elem){elem.value=this.activeIndex;}var tab=this.aTabs[this.activeIndex];if(!tab.loaded||tab.loaded!=true){this.ToggleLoadingMessage(true);var oThis=this;this.contentLoader=new ylib.util.ContentLoader(oThis,tab.url,oThis.AjaxHandler,oThis.errorHandler);this.contentLoader.SendRequest();}else{this.processing=false;}},AjaxHandler:function(request){var oThis=this.component;var elem;oThis.ToggleLoadingMessage(false);elem=xGetElementById(oThis.aTabs[oThis.activeIndex].content);if(elem){elem.innerHTML=request.responseText;oThis.aTabs[oThis.activeIndex].loaded=true;oThis.contentLoader.ClearUp();}oThis.processing=false;},ToggleLoadingMessage:function(active){var elem=xGetElementById(this.loading);if(elem){if(active){xDisplay(elem,'');xVisibility(elem,1);}else{xVisibility(elem,0);}}},ActivateTab:function(event){var thisID=this.id;this.blur();var obj=this.tabObj;if(obj.processing==true)return;for(var i=0;i<obj.aTabs.length;i++){if(thisID==obj.aTabs[i].header){obj.activeIndex=i;obj.ShowTabs();return;}}}};
