







var featuredcontentslider={







//3 variables below you can customize if desired:



ajaxloadingmsg: '<div style="margin: 20px 0 0 20px"><img src="loading.gif" /> Fetching slider Contents. Please wait...</div>',



bustajaxcache: true, //bust caching of external ajax page after 1st request?



enablepersist: true, //persist to last content viewed when returning to page?







settingcaches: {}, //object to cache "setting" object of each script instance







jumpTo:function(fcsid, pagenumber){ //public function to go to a slide manually.



        this.turnpage(this.settingcaches[fcsid], pagenumber)



},







ajaxconnect:function(setting){



        var page_request = false



        if (window.ActiveXObject){ //Test for support for ActiveXObject in IE first (as XMLHttpRequest in IE7 is broken)



                try {



                page_request = new ActiveXObject("Msxml2.XMLHTTP")



                }



                catch (e){



                        try{



                        page_request = new ActiveXObject("Microsoft.XMLHTTP")



                        }



                        catch (e){}



                }



        }



        else if (window.XMLHttpRequest) // if Mozilla, Safari etc



                page_request = new XMLHttpRequest()



        else



                return false



        var pageurl=setting.contentsource[1]



        page_request.onreadystatechange=function(){



                featuredcontentslider.ajaxpopulate(page_request, setting)



        }



        document.getElementById(setting.id).innerHTML=this.ajaxloadingmsg



        var bustcache=(!this.bustajaxcache)? "" : (pageurl.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()



        page_request.open('GET', pageurl+bustcache, true)



        page_request.send(null)



},







ajaxpopulate:function(page_request, setting){



        if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)){



                document.getElementById(setting.id).innerHTML=page_request.responseText



                this.buildpaginate(setting)



        }



},







buildcontentdivs:function(setting){



        var alldivs=document.getElementById(setting.id).getElementsByTagName("div")



        for (var i=0; i<alldivs.length; i++){



                if (this.css(alldivs[i], "contentdiv", "check")){ //check for DIVs with class "contentdiv"



                        setting.contentdivs.push(alldivs[i])



                                alldivs[i].style.display="none" //collapse all content DIVs to begin with



                }



        }



},







buildpaginate:function(setting){



        this.buildcontentdivs(setting)



        var sliderdiv=document.getElementById(setting.id)



        var pdiv=document.getElementById("paginate-"+setting.id)



        var phtml=""



        var toc=setting.toc



        var nextprev=setting.nextprev



        if (typeof toc=="string" && toc!="markup" || typeof toc=="object"){



                for (var i=1; i<=setting.contentdivs.length; i++){



                        //phtml+='<li style="display:inline; float:left;"><a href="#'+i+'"  class="toc" style="border:0; padding-left:0px; padding-right:4px; width:40px;">'+(typeof toc=="string"? toc.replace(/#increment/, i) : toc[i-1])+'</a></li>'
            //phtml+='<li style="display:inline; float:left;"><a href="#'+i+'"  class="toc" style="border:0; padding-left:0px; padding-right:4px; width:40px;">'+(typeof toc=="string"? toc.replace(/#increment/, i) : toc[i-1])+'</a></li>'
            phtml+='<td class="pagination"><a href="#'+i+'"  class="toc" style="border:0; color:white;">'+(typeof toc=="string"? toc.replace(/#increment/, i) : toc[i-1])+'</a></td>'



                }

                //phtml=(nextprev[0]!=''? '' : '') + phtml + (nextprev[1]!=''? '<table cellspacing="0" cellpadding="0" align="right"><tr><td><img src="images/flash/1.png"/></td><td><img src="images/flash/2.png"/></td><td><img src="images/flash/3.png"/></td><td><img src="images/flash/4.png"/></td></tr></table><div style="clear:both;"></div>' : '')
                //phtml=(nextprev[0]!=''? '<ul id="paging"><li class="none" style="display:inline; float:left;"><a href="#prev" class="prev"><img src="images/flash/prev.jpg" /></a></li> ' : '') + phtml + (nextprev[1]!=''? '<li class="none" style="display:inline; float:left;"><a href="#next" class="next"><img src="images/flash/next.jpg" /></a></li><div style="clear:both;"></div><table><tr><td><img src="images/flash/1.png"/></td><td><img src="images/flash/1.png"/></td><td><img src="images/flash/1.png"/></td><td><img src="images/flash/1.png"/></td></tr></table></ul>' : '')

        //with table for arrows
        phtml=(nextprev[0]!=''? '<table cellpadding="0" cellspacing="0" align="right" style="width:200px;"><tr><td><a href="#prev" class="prev"><img src="prev.jpg" style="border:0;"/></a></td> ' : '') + phtml + (nextprev[1]!=''? '<td><a href="#next" class="next"><img src="next.jpg" style="border:0;"/></a></td></tr></table><div style="clear:both;"></div>' : '')

        //phtml=(nextprev[0]!=''? '<ul id="paging"><li><a href="#prev" class="prev">'+nextprev[0]+'</a></li> ' : '') + phtml + (nextprev[1]!=''? '<li><a href="#next" class="next">'+nextprev[1]+'</a></li></ul>' : '')



                pdiv.innerHTML=phtml



        }



        var pdivlinks=pdiv.getElementsByTagName("a")



        var toclinkscount=0 //var to keep track of actual # of toc links



        for (var i=0; i<pdivlinks.length; i++){



                if (this.css(pdivlinks[i], "toc", "check")){



                        



                        pdivlinks[i].onmouseover=function(){



                                showThumb(this.getAttribute("rel"));



                        }



                        



                        pdivlinks[i].onmouseout=function(){



                                hideThumb(this.getAttribute("rel"));



                        }



                        



                        



                        if (toclinkscount>setting.contentdivs.length-1){ //if this toc link is out of range (user defined more toc links then there are contents)



                                pdivlinks[i].style.display="none" //hide this toc link



                                continue



                        }



                        



                        pdivlinks[i].setAttribute("rel", ++toclinkscount) //store page number inside toc link



                        pdivlinks[i][setting.revealtype]=function(){



                                featuredcontentslider.turnpage(setting, this.getAttribute("rel"))



                                return false



                        }



                        setting.toclinks.push(pdivlinks[i])



                }



                else if (this.css(pdivlinks[i], "prev", "check") || this.css(pdivlinks[i], "next", "check")){ //check for links with class "prev" or "next"



                        



                        pdivlinks[i].onclick=function(){



                                featuredcontentslider.turnpage(setting, this.className)



                                return false



                        }



                }



        }



        this.turnpage(setting, setting.currentpage, true)



        if (setting.autorotate[0]){ //if auto rotate enabled



                pdiv[setting.revealtype]=function(){



                        featuredcontentslider.cleartimer(setting, window["fcsautorun"+setting.id])



                }



                sliderdiv["onclick"]=function(){ //stop content slider when slides themselves are clicked on



                        featuredcontentslider.cleartimer(setting, window["fcsautorun"+setting.id])



                }



                setting.autorotate[1]=setting.autorotate[1]+(1/setting.enablefade[1]*50) //add time to run fade animation (roughly) to delay between rotation



         this.autorotate(setting)



        }



},







urlparamselect:function(fcsid){



        var result=window.location.search.match(new RegExp(fcsid+"=(\\d+)", "i")) //check for "?featuredcontentsliderid=2" in URL



        return (result==null)? null : parseInt(RegExp.$1) //returns null or index, where index (int) is the selected tab's index



},







turnpage:function(setting, thepage, autocall){



        var currentpage=setting.currentpage //current page # before change



        



        var totalpages=setting.contentdivs.length



        var turntopage=(/prev/i.test(thepage))? currentpage-1 : (/next/i.test(thepage))? currentpage+1 : parseInt(thepage)



        turntopage=(turntopage<1)? totalpages : (turntopage>totalpages)? 1 : turntopage //test for out of bound and adjust



        if (turntopage==setting.currentpage && typeof autocall=="undefined") //if a pagination link is clicked on repeatedly



                return



        setting.currentpage=turntopage



        setting.contentdivs[turntopage-1].style.zIndex=++setting.topzindex



        this.cleartimer(setting, window["fcsfade"+setting.id])



        setting.cacheprevpage=setting.prevpage



        if (setting.enablefade[0]==true){



                setting.curopacity=0



                this.fadeup(setting)



        }



        if (setting.enablefade[0]==false){ //if fade is disabled, fire onChange event immediately (verus after fade is complete)



                setting.contentdivs[setting.prevpage-1].style.display="none" //collapse last content div shown (it was set to "block")



                setting.onChange(setting.prevpage, setting.currentpage)



        }



        setting.contentdivs[turntopage-1].style.visibility="visible"



        setting.contentdivs[turntopage-1].style.display="block"



        if (setting.prevpage<=setting.toclinks.length) //make sure pagination link exists (may not if manually defined via "markup", and user omitted)



                this.css(setting.toclinks[setting.prevpage-1], "selected", "remove")



        if (turntopage<=setting.toclinks.length) //make sure pagination link exists (may not if manually defined via "markup", and user omitted)



                this.css(setting.toclinks[turntopage-1], "selected", "add")



        setting.prevpage=turntopage



        if (this.enablepersist)



                this.setCookie("fcspersist"+setting.id, turntopage)



},







setopacity:function(setting, value){ //Sets the opacity of targetobject based on the passed in value setting (0 to 1 and in between)



        var targetobject=setting.contentdivs[setting.currentpage-1]



        if (targetobject.filters && targetobject.filters[0]){ //IE syntax



                if (typeof targetobject.filters[0].opacity=="number") //IE6



                        targetobject.filters[0].opacity=value*100



                else //IE 5.5



                        targetobject.style.filter="alpha(opacity="+value*100+")"



        }



        else if (typeof targetobject.style.MozOpacity!="undefined") //Old Mozilla syntax



                targetobject.style.MozOpacity=value



        else if (typeof targetobject.style.opacity!="undefined") //Standard opacity syntax



                targetobject.style.opacity=value



        setting.curopacity=value



},







fadeup:function(setting){



        if (setting.curopacity<1){



                this.setopacity(setting, setting.curopacity+setting.enablefade[1])



                window["fcsfade"+setting.id]=setTimeout(function(){featuredcontentslider.fadeup(setting)}, 50)



        }



        else{ //when fade is complete



                if (setting.cacheprevpage!=setting.currentpage) //if previous content isn't the same as the current shown div (happens the first time the page loads/ script is run)



                        setting.contentdivs[setting.cacheprevpage-1].style.display="none" //collapse last content div shown (it was set to "block")



                setting.onChange(setting.cacheprevpage, setting.currentpage)



        }



},







cleartimer:function(setting, timervar){



        if (typeof timervar!="undefined"){



                clearTimeout(timervar)



                clearInterval(timervar)



                if (setting.cacheprevpage!=setting.currentpage){ //if previous content isn't the same as the current shown div



                        setting.contentdivs[setting.cacheprevpage-1].style.display="none"



                }



        }



},







css:function(el, targetclass, action){
        var needle=new RegExp("(^|\\s+)"+targetclass+"($|\\s+)", "ig")
        if (action=="check")
                return needle.test(el.className)
        else if (action=="remove")
                el.className=el.className.replace(needle, "")
        else if (action=="add")
                el.className+=" "+targetclass
},







autorotate:function(setting){



 window["fcsautorun"+setting.id]=setInterval(function(){featuredcontentslider.turnpage(setting, "next")}, setting.autorotate[1])



},







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 null



},







setCookie:function(name, value){



        document.cookie = name+"="+value







},











init:function(setting){



        var persistedpage=this.getCookie("fcspersist"+setting.id) || 1



        var urlselectedpage=this.urlparamselect(setting.id) //returns null or index from: mypage.htm?featuredcontentsliderid=index



        this.settingcaches[setting.id]=setting //cache "setting" object



        setting.contentdivs=[]



        setting.toclinks=[]



        setting.topzindex=0



        setting.currentpage=urlselectedpage || ((this.enablepersist)? persistedpage : 1)



        setting.prevpage=setting.currentpage



        setting.revealtype="on"+(setting.revealtype || "click")



        setting.curopacity=0



        setting.onChange=setting.onChange || function(){}



        if (setting.contentsource[0]=="inline")



                this.buildpaginate(setting)



        if (setting.contentsource[0]=="ajax")



                this.ajaxconnect(setting)



}







}



var posx = 0;



var posy = 0;



last_div='';



function showThumb(i){



        if(last_div!=''){



                last_div.style.visibility='hidden';     



        }



        div=document.getElementById("thumbs");



        



        if(div){
                //new_posy=posy-80;
                new_posx=posx-30;
                div.style.left=new_posx+"px";
                //div.style.top=new_posy+"px";
                new_left=i*(36);
                div.style.left=714+new_left+(5*i)+"px";
                div.style.top=248+"px";
                div.innerHTML="<img src='images/flash/thumb-"+i+".gif'/>";
                div.style.visibility='visible';
                last_div=div;

        }



        



}



function getThumbNum(i)



{







}







function getMouseCoordinates(e)



{



        if (!e) var e = window.event;



        if (e.pageX || e.pageY)         {



                posx = e.pageX;



                posy = e.pageY;



        }



        else if (e.clientX || e.clientY)        {



                posx = e.clientX + document.body.scrollLeft



                        + document.documentElement.scrollLeft;



                posy = e.clientY + document.body.scrollTop



                        + document.documentElement.scrollTop;



        }



        // posx and posy contain the mouse position relative to the document



        // Do something with this information







}







function hideThumb(i){



        if(last_div!=''){



                last_div.style.visibility='hidden';             



        }



}







document.onmousemove=getMouseCoordinates;