X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=js%2Ftabcontent.js;h=62f842d07dd84303e2c8a734c1a5ae384f09bc8a;hb=68a7345e6627abdce3554d0e94e5ff70dcb8ed97;hp=243be264bbe8915a181763b3d76525ef4c6ae8ba;hpb=54e4131e091831e00a861fe2c4f53e344b87ddca;p=kivitendo-erp.git diff --git a/js/tabcontent.js b/js/tabcontent.js index 243be264b..62f842d07 100644 --- a/js/tabcontent.js +++ b/js/tabcontent.js @@ -1,82 +1,159 @@ -//** Tab Content script- © Dynamic Drive DHTML code library (http://www.dynamicdrive.com) -//** Last updated: June 29th, 06 - -var enabletabpersistence=1 //enable tab persistence via session only cookies, so selected tab is remembered? +//** Tab Content script v2.0- © Dynamic Drive DHTML code library (http://www.dynamicdrive.com) +//** Updated Oct 7th, 07 to version 2.0. Contains numerous improvements: +// -Added Auto Mode: Script auto rotates the tabs based on an interval, until a tab is explicitly selected +// -Ability to expand/contract arbitrary DIVs on the page as the tabbed content is expanded/ contracted +// -Ability to dynamically select a tab either based on its position within its peers, or its ID attribute (give the target tab one 1st) +// -Ability to set where the CSS classname "selected" get assigned- either to the target tab's link ("A"), or its parent container +//** Updated Feb 18th, 08 to version 2.1: Adds a "tabinstance.cycleit(dir)" method to cycle forward or backward between tabs dynamically +//** Updated April 8th, 08 to version 2.2: Adds support for expanding a tab using a URL parameter (ie: http://mysite.com/tabcontent.htm?tabinterfaceid=0) ////NO NEED TO EDIT BELOW//////////////////////// -var tabcontentIDs=new Object() - -function expandcontent(linkobj){ -var ulid=linkobj.parentNode.parentNode.id //id of UL element -var ullist=document.getElementById(ulid).getElementsByTagName("li") //get list of LIs corresponding to the tab contents -for (var i=0; i0)? this.currentTabIndex-1 : this.hottabspositions.length-1 + } + if (typeof autorun=="undefined") //if cycleit() is being called by user, versus autorun() function + this.cancelautorun() //stop auto cycling of tabs (if running) + this.expandtab(this.tabs[this.hottabspositions[currentTabIndex]]) + }, + + setpersist:function(bool){ //PUBLIC function to toggle persistence feature + this.enabletabpersistence=bool + }, + + setselectedClassTarget:function(objstr){ //PUBLIC function to set which target element to assign "selected" CSS class ("linkparent" or "link") + this.selectedClassTarget=objstr || "link" + }, + + getselectedClassTarget:function(tabref){ //Returns target element to assign "selected" CSS class to + return (this.selectedClassTarget==("linkparent".toLowerCase()))? tabref.parentNode : tabref + }, + + urlparamselect:function(tabinterfaceid){ + var result=window.location.search.match(new RegExp(tabinterfaceid+"=(\\d+)", "i")) //check for "?tabinterfaceid=2" in URL + return (result==null)? null : parseInt(RegExp.$1) //returns null or index, where index (int) is the selected tab's index + }, + + expandtab:function(tabref){ + var subcontentid=tabref.getAttribute("rel") //Get id of subcontent to expand + //Get "rev" attr as a string of IDs in the format ",john,george,trey,etc," to easily search through + var associatedrevids=(tabref.getAttribute("rev"))? ","+tabref.getAttribute("rev").replace(/\s+/, "")+"," : "" + this.expandsubcontent(subcontentid) + this.expandrevcontent(associatedrevids) + for (var i=0; i500 && this.hottabspositions.length>1){ + this.autoruntimer=setInterval(function(){tabinstance.autorun()}, this.automodeperiod) + } + } //END int() function -function setCookie(name, value){ -document.cookie = name+"="+value //cookie value is domain wide (path=/) -} \ No newline at end of file +} //END Prototype assignment \ No newline at end of file