//** Featured Content Slider script- © Dynamic Drive DHTML code library (http://www.dynamicdrive.com)//** Last updated: Oct 28th, 06////Ajax related settingsvar csbustcachevar=0 //bust potential caching of external pages after initial Ajax request? (1=yes, 0=no)var csloadstatustext="<img src='loading.gif' /> Requesting content..." //HTML to indicate Ajax page is being fetchedvar csexternalfiles=[] //External .css or .js files to load to style the external content(s), if any. Separate multiple files with comma ie: ["cat.css", dog.js"]////NO NEED TO EDIT BELOW////////////////////////var enablepersist=truevar slidernodes=new Object() //Object array to store references to each content slider's DIV containers (<div class="contentdiv">)var csloadedobjects="" //Variable to store file names of .js/.css files already loaded (if Ajax is used)function ContentSlider(sliderid, autorun){var slider=document.getElementById(sliderid)slidernodes[sliderid]=[] //Array to store references to this content slider's DIV containers (<div class="contentdiv">)ContentSlider.loadobjects(csexternalfiles) //Load external .js and .css files, if anyvar alldivs=slider.getElementsByTagName("div")for (var i=0; i<alldivs.length; i++){if (alldivs[i].className=="contentdiv"){slidernodes[sliderid].push(alldivs[i]) //add this DIV reference to arrayif (typeof alldivs[i].getAttribute("rel")=="string") //If get this DIV's content via Ajax (rel attr contains path to external page)ContentSlider.ajaxpage(alldivs[i].getAttribute("rel"), alldivs[i])}}ContentSlider.buildpagination(sliderid)var loadfirstcontent=trueif (enablepersist && getCookie(sliderid)!=""){ //if enablepersist is true and cookie contains corresponding value for slidervar cookieval=getCookie(sliderid).split(":") //process cookie value ([sliderid, int_pagenumber (div content to jump to)]if (document.getElementById(cookieval[0])!=null && typeof slidernodes[sliderid][cookieval[1]]!="undefined"){ //check cookie value for validityContentSlider.turnpage(cookieval[0], parseInt(cookieval[1])) //restore content slider's last shown DIVloadfirstcontent=false}}if (loadfirstcontent==true) //if enablepersist is false, or cookie value doesn't contain valid value for some reason (ie: user modified the structure of the HTML)ContentSlider.turnpage(sliderid, 0) //Display first DIV within sliderif (typeof autorun=="number" && autorun>0) //if autorun parameter (int_miliseconds) is defined, fire auto run sequencewindow[sliderid+"timer"]=setTimeout(function(){ContentSlider.autoturnpage(sliderid, autorun)}, autorun)}ContentSlider.buildpagination=function(sliderid){var paginatediv=document.getElementById("paginate-"+sliderid) //reference corresponding pagination DIV for slidervar pcontent=""for (var i=0; i<slidernodes[sliderid].length; i++) //For each DIV within slider, generate a pagination linkpcontent+='<a href="#" onClick=\"ContentSlider.turnpage(\''+sliderid+'\', '+i+'); return false\">'+(i+1)+'</a> 'pcontent+='<a href="#" style="font-weight: bold;" onClick=\"ContentSlider.turnpage(\''+sliderid+'\', parseInt(this.getAttribute(\'rel\'))); return false\">Next</a>'paginatediv.innerHTML=pcontentpaginatediv.onclick=function(){ //cancel auto run sequence (if defined) when user clicks on pagination DIVif (typeof window[sliderid+"timer"]!="undefined")clearTimeout(window[sliderid+"timer"])}}ContentSlider.turnpage=function(sliderid, thepage){var paginatelinks=document.getElementById("paginate-"+sliderid).getElementsByTagName("a") //gather pagination linksfor (var i=0; i<slidernodes[sliderid].length; i++){ //For each DIV within sliderpaginatelinks[i].className="" //empty corresponding pagination link's class nameslidernodes[sliderid][i].style.display="none" //hide DIV}paginatelinks[thepage].className="selected" //for selected DIV, set corresponding pagination link's class nameslidernodes[sliderid][thepage].style.display="block" //show selected DIV//Set "Next" pagination link's (last link within pagination DIV) "rel" attribute to the next DIV number to showpaginatelinks[paginatelinks.length-1].setAttribute("rel", thenextpage=(thepage<paginatelinks.length-2)? thepage+1 : 0)if (enablepersist)setCookie(sliderid, sliderid+":"+thepage)}ContentSlider.autoturnpage=function(sliderid, autorunperiod){var paginatelinks=document.getElementById("paginate-"+sliderid).getElementsByTagName("a") //Get pagination linksvar nextpagenumber=parseInt(paginatelinks[paginatelinks.length-1].getAttribute("rel")) //Get page number of next DIV to showContentSlider.turnpage(sliderid, nextpagenumber) //Show that DIVwindow[sliderid+"timer"]=setTimeout(function(){ContentSlider.autoturnpage(sliderid, autorunperiod)}, autorunperiod)}function getCookie(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 ""}function setCookie(name, value){document.cookie = name+"="+value}////////////////Ajax Related functions //////////////////////////////////ContentSlider.ajaxpage=function(url, thediv){var page_request = falsevar bustcacheparameter=""if (window.XMLHttpRequest) // if Mozilla, Safari etcpage_request = new XMLHttpRequest()else if (window.ActiveXObject){ // if IEtry {page_request = new ActiveXObject("Msxml2.XMLHTTP")} catch (e){try{page_request = new ActiveXObject("Microsoft.XMLHTTP")}catch (e){}}}elsereturn falsethediv.innerHTML=csloadstatustextpage_request.onreadystatechange=function(){ContentSlider.loadpage(page_request, thediv)}if (csbustcachevar) //if bust caching of external pagebustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()page_request.open('GET', url+bustcacheparameter, true)page_request.send(null)}ContentSlider.loadpage=function(page_request, thediv){if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))thediv.innerHTML=page_request.responseText}ContentSlider.loadobjects=function(externalfiles){ //function to load external .js and .css files. Parameter accepts a list of external files to load (array)for (var i=0; i<externalfiles.length; i++){var file=externalfiles[i]var fileref=""if (csloadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceedingif (file.indexOf(".js")!=-1){ //If object is a js filefileref=document.createElement('script')fileref.setAttribute("type","text/javascript");fileref.setAttribute("src", file);}else if (file.indexOf(".css")!=-1){ //If object is a css filefileref=document.createElement("link")fileref.setAttribute("rel", "stylesheet");fileref.setAttribute("type", "text/css");fileref.setAttribute("href", file);}}if (fileref!=""){document.getElementsByTagName("head").item(0).appendChild(fileref)csloadedobjects+=file+" " //Remember this object as being already added to page}}}