University of Vermont

// ------------------------------------------------------------------- // Switch Content Script- By Dynamic Drive, available at: http://www.dynamicdrive.com // Created: Jan 5th, 2007 // April 5th: Added ability to persist content states by x days versus just session only // ------------------------------------------------------------------- function switchcontent(className, filtertag){ this.className=className this.collapsePrev=false //Default: Collapse previous content each time this.persistType="none" //Default: Disable persistence //Limit type of element to scan for on page for switch contents if 2nd function parameter is defined, for efficiency sake (ie: "div") this.filter_content_tag=(typeof filtertag!="undefined")? filtertag.toLowerCase() : "" } switchcontent.prototype.setStatus=function(openHTML, closeHTML){ //PUBLIC: Set open/ closing HTML indicator. Optional this.statusOpen=openHTML this.statusClosed=closeHTML } switchcontent.prototype.setColor=function(openColor, closeColor){ //PUBLIC: Set open/ closing color of switch header. Optional this.colorOpen=openColor this.colorClosed=closeColor } switchcontent.prototype.setPersist=function(bool, days){ //PUBLIC: Enable/ disable persistence. Default is false. if (bool==true){ //if enable persistence if (typeof days=="undefined") //if session only this.persistType="session" else{ //else if non session persistent this.persistType="days" this.persistDays=parseInt(days) } } else this.persistType="none" } switchcontent.prototype.collapsePrevious=function(bool){ //PUBLIC: Enable/ disable collapse previous content. Default is false. this.collapsePrev=bool } switchcontent.prototype.sweepToggle=function(setting){ //PUBLIC: Expand/ contract all contents method. (Values: "contract"|"expand") if (typeof this.headers!="undefined" && this.headers.length>0){ //if there are switch contents defined on the page for (var i=0; i1) //If there exists open content to be persisted opencontents.shift() //Boot the "none" value from the array, so all it contains are the ids of the open contents if (typeof this.statusOpen!="undefined") this.statusOpen=this.statusClosed=null //Cleanup code if (this.persistType=="session") //if session only cookie set switchcontent.setCookie(this.className, opencontents.join(",")) //populate cookie with indices of open contents: classname=1,2,3,etc else if (this.persistType=="days" && typeof this.persistDays=="number"){ //if persistent cookie set instead switchcontent.setCookie(this.className+"_d", opencontents.join(","), this.persistDays) //populate cookie with indices of open contents switchcontent.setCookie(this.className+"_dtrack", this.persistDays, this.persistDays) //also remember number of days to persist (int) } } // ------------------------------------------------------------------- // A few utility functions below: // ------------------------------------------------------------------- switchcontent.dotask=function(target, functionref, tasktype){ //assign a function to execute to an event handler (ie: onunload) var tasktype=(window.addEventListener)? tasktype : "on"+tasktype if (target.addEventListener) target.addEventListener(tasktype, functionref, false) else if (target.attachEvent) target.attachEvent(tasktype, functionref) } switchcontent.getCookie=function(Name){ var re=new RegExp(Name+"=[^;]+", "i"); //construct RE to search for target name/value pair if (document.cookie.match(re)) //if cookie found return document.cookie.match(re)[0].split("=")[1] //return its value return "" } switchcontent.setCookie=function(name, value, days){ if (typeof days!="undefined"){ //if set persistent cookie var expireDate = new Date() var expstring=expireDate.setDate(expireDate.getDate()+days) document.cookie = name+"="+value+"; expires="+expireDate.toGMTString() } else //else if this is a session only cookie document.cookie = name+"="+value }

Last modified January 23 2008 01:22 PM

Contact UVM © 2017 The University of Vermont - Burlington, VT 05405 - (802) 656-3131