///FAQ Script ///
function show_answer(answerid, questionid, liid) {
//alert('test');
//alert(document.getElementById(answerid).style.display);
if (document.getElementById(answerid).style.display=="none")
{
document.getElementById(answerid).style.display="";
document.getElementById(questionid).style.fontWeight="bold";
//document.getElementById(questionid).style.textDecoration="underline";
document.getElementById(liid).style.background="#eeeeee";
} else {
document.getElementById(answerid).style.display="none";
document.getElementById(questionid).style.fontWeight="normal";
//document.getElementById(questionid).style.textDecoration="none";
document.getElementById(liid).style.background="#ffffff";
}
//answerid.style.display=true;
}







//// NO NEED TO EDIT BELOW THIS LINE ////////////
var actualwidth = 0; // Ist die Breite des scrollenden Teils -  wird automatisch gesetzt durch set_correct_width und ist abhaengig von der anzahl der scroll-eintraege
// Schrittweite pro Klick (wenn gleich wie breite_pro_angebot, dann wir bei jedem klick um genau EIN angebot weitergescrollt)
var slide_step;
var copyspeed;
var cross_slide_01, cross_slide_02;
var filled_up = false;
var left_running = false;
var right_running = false;
// Wenn Simple-Mode, dann ist die Schrittweite immer gleich der Breite des Angebotes
if (mode == "simple") {
 slide_step = width_per_offer // muss immer ein vielfaches der breite sein, sonst kommt es zu verschiebungen
}
copyspeed = slide_step;
function fillup(direction) {
 cross_slide_01 = document.getElementById? document.getElementById("slide_part_01") : document.all.slide_part_01;
 cross_slide_02 = document.getElementById? document.getElementById("slide_part_02") : document.all.slide_part_02;
 cross_slide_01.innerHTML = cross_slide_02.innerHTML=document.getElementById("slide_part_01").innerHTML;
 
 if (direction == "right") // Korrektes Positionieren des zweiten Teils des Sliders (je nach Scrollrichtung)
  cross_slide_02.style.left = -actualwidth+"px";
 else
  cross_slide_02.style.left = actualwidth+"px";
 
 debug = "actual_width: " + actualwidth;
 debug = debug + "<br><br>cross_slide_01: " + cross_slide_01.style.left + "<br><br>cross_slide_02: " + cross_slide_02.style.left;
 //lefttime=setInterval("slideright()",30);
 //lefttime=setInterval("slideleft()",30);
}
function slideleft() {
 
 if (parseInt(cross_slide_01.style.left) > -parseInt(actualwidth))
  cross_slide_01.style.left=parseInt(cross_slide_01.style.left)-parseInt(copyspeed)+"px"
 else {
  //alert ("cross_slide_01: " + cross_slide_01.style.left);
  cross_slide_01.style.left=parseInt(cross_slide_02.style.left)+parseInt(actualwidth)+"px";
 }
  
 if (parseInt(cross_slide_02.style.left) > -parseInt(actualwidth))
  cross_slide_02.style.left=parseInt(cross_slide_02.style.left)-parseInt(copyspeed)+"px"
 else {
  //alert ("cross_slide_02: " + cross_slide_02.style.left);
  cross_slide_02.style.left=parseInt(cross_slide_01.style.left)+parseInt(actualwidth)+"px";
 }
 // Korrektur (Nachziehen)
 difference = parseInt(actualwidth) + parseInt(cross_slide_02.style.left);
 difference =  parseInt(cross_slide_01.style.left) - difference;
 if (difference > 0 ) {
  cross_slide_01.style.left=parseInt(cross_slide_01.style.left)-parseInt(difference)+"px";
 };
 
 //debug = "actual_width: " + actualwidth;
 //debug = debug + "<br><br>cross_slide_01: " + cross_slide_01.style.left + "<br><br>cross_slide_02: " + cross_slide_02.style.left;
 //debug = debug + "<br>difference: " + difference;
 //document.getElementById("pb").innerHTML = debug;
}
function slideright(){
 if (parseInt(cross_slide_01.style.left) < parseInt(actualwidth))
  cross_slide_01.style.left=parseInt(cross_slide_01.style.left)+parseInt(copyspeed)+"px"
 else
  cross_slide_01.style.left=parseInt(cross_slide_02.style.left)-parseInt(actualwidth)+"px"
  
 if (parseInt(cross_slide_02.style.left) < parseInt(actualwidth))
  cross_slide_02.style.left=parseInt(cross_slide_02.style.left)+parseInt(copyspeed)+"px"
 else
  cross_slide_02.style.left=parseInt(cross_slide_01.style.left)-parseInt(actualwidth)+"px"
 // Korrektur (Nachziehen)
 if (parseInt(cross_slide_01.style.left)>=parseInt(actualwidth)) {
  cross_slide_01.style.left=parseInt(cross_slide_02.style.left)-actualwidth+"px";
 }
 //debug = "actual_width: " + actualwidth;
 //debug = debug + "<br><br>cross_slide_01: " + cross_slide_01.style.left + "<br><br>cross_slide_02: " + cross_slide_02.style.left;
 //document.getElementById("pb").innerHTML = debug;
}
// Slider starten
function start_slide (direction) {
 // Slider auffuellen
 if (!filled_up) {
  fillup(direction);
  filled_up = true;
 }
 
 // Richtung festlegen
 if (direction == "left") {
  if (mode == "advanced") {
   if (typeof(righttime) != "undefined") clearInterval(righttime);
   if (!left_running) lefttime = setInterval("slideleft()", timer_intervall);
  } else {
   slideleft();  
  }
  left_running = true;
  right_running = false;
 } else {
  if (mode == "advanced") {
   if (typeof(lefttime) != "undefined") clearInterval(lefttime);
   if (!right_running) righttime = setInterval("slideright()", timer_intervall);
  } else {
   slideright();
  }
  left_running = false;
  right_running = true;
 }
 
}
// Ermittelt Styleangaben eines Elementes
function get_style(oElm, strCssRule){
    var strValue = "";
    if(document.defaultView && document.defaultView.getComputedStyle){
        strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule);
    }
    else if(oElm.currentStyle){
        strCssRule = strCssRule.replace(/-(w)/g, function (strMatch, p1){
            return p1.toUpperCase();
        });
        strValue = oElm.currentStyle[strCssRule];
    }
    return strValue;
}
// Check ob DHTML-Sliden moeglich ist (ist nur moeglich, wenn Style-Sheets moegich sind, wird ueberpruft anhand eines Check-Styles)
function check_for_slideability () {
 return_value = false;
 if (get_style(document.getElementById("slider_button_left") , "cursor") == "pointer") { // Nur wenn das Check-Style korrekt gesetzt ist, wird erkannt, dass der User Styles verwendet und somit ein Sliden moeglich ist
  return_value = true;
 } else {
  return_value = false;
 }
 if (navigator.userAgent.indexOf("Safari") != -1) {
  return_value = true;
 }
 return return_value;
}
// Anzahl der Listen-Elemente ausfindig machen - damit kann anschliessend die Geamtbreite des scrollenden Teils berechnet werden
function get_count_list_elements () {
 counter = 0;
 list = document.getElementById("list_to_slide");
 for (i=0; i<list.childNodes.length; i++) {
  if (list.childNodes[i].nodeName == "LI" | list.childNodes[i].nodeName == "li") {
   counter++;
  }
 }
 return counter;
}
// Setzt die korrekte Breite des inneren Slider-Elements
function set_correct_width () {
 var count_list_elemente = get_count_list_elements();
 actualwidth = (width_per_offer * count_list_elemente);
}
// Initialisiert den Slider
function slider_init () {
 set_correct_width (); // Setzt die Breite des inneren Slider-Elementes
 if (auto_start) { // Automatischer Start bei Seiten-Load
  if (check_for_slideability()) { // Check ob Sliden ueberhaupt moeglich ist (wird anhand eines Styles ueberpreuft)
   start_slide(auto_start_direction);
  }
 }
}
 
























//** Ajax Tabs Content script v2.0- © Dynamic Drive DHTML code library (http://www.dynamicdrive.com)
//** Updated Oct 21st, 07 to version 2.0. Contains numerous improvements
var ddajaxtabssettings={}
ddajaxtabssettings.bustcachevar=1  //bust potential caching of external pages after initial request? (1=yes, 0=no)
ddajaxtabssettings.loadstatustext="<img src='/images/loading.gif' /> Inhalte werden geladen..." 

////NO NEED TO EDIT BELOW////////////////////////
function ddajaxtabs(tabinterfaceid, contentdivid){
    this.tabinterfaceid=tabinterfaceid //ID of Tab Menu main container
    this.tabs=document.getElementById(tabinterfaceid).getElementsByTagName("a") //Get all tab links within container
    this.enabletabpersistence=true
    this.hottabspositions=[] //Array to store position of tabs that have a "rel" attr defined, relative to all tab links, within container
    this.contentdivid=contentdivid
    this.defaultHTML=""
    this.defaultIframe='<iframe src="about:blank" marginwidth="0" marginheight="0" frameborder="0" vspace="0" hspace="0" class="tabcontentiframe" style="width:100%; height:auto; min-height: 100px"></iframe>'
    this.defaultIframe=this.defaultIframe.replace(/<iframe/i, '<iframe name="'+"_ddajaxtabsiframe-"+contentdivid+'" ')
this.revcontentids=[] //Array to store ids of arbitrary contents to expand/contact as well ("rev" attr values)
    this.selectedClassTarget="link" //keyword to indicate which target element to assign "selected" CSS class ("linkparent" or "link")
}
ddajaxtabs.connect=function(pageurl, tabinstance){
    var page_request = false
    var bustcacheparameter=""
    if (window.XMLHttpRequest) // if Mozilla, IE7, Safari etc
        page_request = new XMLHttpRequest()
    else if (window.ActiveXObject){ // if IE6 or below
        try {
        page_request = new ActiveXObject("Msxml2.XMLHTTP")
        } 
        catch (e){
            try{
            page_request = new ActiveXObject("Microsoft.XMLHTTP")
            }
            catch (e){}
        }
    }
    else
        return false
    var ajaxfriendlyurl=pageurl.replace(/^http:\/\/[^\/]+\//i, "http://"+window.location.hostname+"/") 
    page_request.onreadystatechange=function(){ddajaxtabs.loadpage(page_request, pageurl, tabinstance)}
    if (ddajaxtabssettings.bustcachevar) //if bust caching of external page
        bustcacheparameter=(ajaxfriendlyurl.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
    page_request.open('GET', ajaxfriendlyurl+bustcacheparameter, true)
    page_request.send(null)
}
ddajaxtabs.loadpage=function(page_request, pageurl, tabinstance){
    var divId=tabinstance.contentdivid
    document.getElementById(divId).innerHTML=ddajaxtabssettings.loadstatustext //Display "fetching page message"
    if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)){
        document.getElementById(divId).innerHTML=page_request.responseText
        ddajaxtabs.ajaxpageloadaction(pageurl, tabinstance)
    }
}
ddajaxtabs.ajaxpageloadaction=function(pageurl, tabinstance){
    tabinstance.onajaxpageload(pageurl) //call user customized onajaxpageload() function when an ajax page is fetched/ loaded
}
ddajaxtabs.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 ""
}
ddajaxtabs.setCookie=function(name, value){
    document.cookie = name+"="+value+";path=/" //cookie value is domain wide (path=/)
}
ddajaxtabs.prototype={
    expandit:function(tabid_or_position){ //PUBLIC function to select a tab either by its ID or position(int) within its peers
        this.cancelautorun() //stop auto cycling of tabs (if running)
        var tabref=""
        try{
            if (typeof tabid_or_position=="string" && document.getElementById(tabid_or_position).getAttribute("rel")) //if specified tab contains "rel" attr
                tabref=document.getElementById(tabid_or_position)
            else if (parseInt(tabid_or_position)!=NaN && this.tabs[tabid_or_position].getAttribute("rel")) //if specified tab contains "rel" attr
                tabref=this.tabs[tabid_or_position]
        }
        catch(err){alert("Invalid Tab ID or position entered!")}
        if (tabref!="") //if a valid tab is found based on function parameter
            this.expandtab(tabref) //expand this tab
    },
    setpersist:function(bool){ //PUBLIC function to toggle persistence feature
            this.enabletabpersistence=bool
    },
    loadajaxpage:function(pageurl){ //PUBLIC function to fetch a page via Ajax and display it within the Tab Content instance's container
        ddajaxtabs.connect(pageurl, this)
    },
    loadiframepage:function(pageurl){ //PUBLIC function to fetch a page and load it into the IFRAME of the Tab Content instance's container
        this.iframedisplay(pageurl, this.contentdivid)
    },
    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
    },
    onajaxpageload:function(pageurl){ //PUBLIC Event handler that can invoke custom code whenever an Ajax page has been fetched and displayed
        //do nothing by default
    },
    expandtab:function(tabref){
        var relattrvalue=tabref.getAttribute("rel")
        //Get "rev" attr as a string of IDs in the format ",john,george,trey,etc," to easy searching through
        var associatedrevids=(tabref.getAttribute("rev"))? ","+tabref.getAttribute("rev").replace(/\s+/, "")+"," : ""
        if (relattrvalue=="#default")
            document.getElementById(this.contentdivid).innerHTML=this.defaultHTML
        else if (relattrvalue=="#iframe")
            this.iframedisplay(tabref.getAttribute("href"), this.contentdivid)
        else
            ddajaxtabs.connect(tabref.getAttribute("href"), this)
        this.expandrevcontent(associatedrevids)
        for (var i=0; i<this.tabs.length; i++){ //Loop through all tabs, and assign only the selected tab the CSS class "selected"
            this.getselectedClassTarget(this.tabs[i]).className=(this.tabs[i].getAttribute("href")==tabref.getAttribute("href"))? "selected" : ""
        }
        if (this.enabletabpersistence) //if persistence enabled, save selected tab position(int) relative to its peers
            ddajaxtabs.setCookie(this.tabinterfaceid, tabref.tabposition)
    },
    iframedisplay:function(pageurl, contentdivid){
        if (typeof window.frames["_ddajaxtabsiframe-"+contentdivid]!="undefined"){
            try{delete window.frames["_ddajaxtabsiframe-"+contentdivid]} //delete iframe within Tab content container if it exists (due to bug in Firefox)
            catch(err){}
        }
        document.getElementById(contentdivid).innerHTML=this.defaultIframe
        window.frames["_ddajaxtabsiframe-"+contentdivid].location.replace(pageurl) //load desired page into iframe
    },

    expandrevcontent:function(associatedrevids){
        var allrevids=this.revcontentids
        for (var i=0; i<allrevids.length; i++){ //Loop through rev attributes for all tabs in this tab interface
            //if any values stored within associatedrevids matches one within allrevids, expand that DIV, otherwise, contract it
            document.getElementById(allrevids[i]).style.display=(associatedrevids.indexOf(","+allrevids[i]+",")!=-1)? "block" : "none"
        }
    },
    autorun:function(){ //function to auto cycle through and select tabs based on a set interval
        var currentTabIndex=this.automode_currentTabIndex //index within this.hottabspositions to begin
        var hottabspositions=this.hottabspositions //Array containing position numbers of "hot" tabs (those with a "rel" attr)
        this.expandtab(this.tabs[hottabspositions[currentTabIndex]])
        this.automode_currentTabIndex=(currentTabIndex<hottabspositions.length-1)? currentTabIndex+1 : 0 //increment currentTabIndex
    },
    cancelautorun:function(){
        if (typeof this.autoruntimer!="undefined")
            clearInterval(this.autoruntimer)
    },
    init:function(automodeperiod){
        var persistedtab=ddajaxtabs.getCookie(this.tabinterfaceid) //get position of persisted tab (applicable if persistence is enabled)
        var persisterror=true //Bool variable to check whether persisted tab position is valid (can become invalid if user has modified tab structure)
        this.automodeperiod=automodeperiod || 0
        this.defaultHTML=document.getElementById(this.contentdivid).innerHTML
        for (var i=0; i<this.tabs.length; i++){
            this.tabs[i].tabposition=i //remember position of tab relative to its peers
            if (this.tabs[i].getAttribute("rel")){
                var tabinstance=this
                this.hottabspositions[this.hottabspositions.length]=i //store position of "hot" tab ("rel" attr defined) relative to its peers
                this.tabs[i].onclick=function(){
                    tabinstance.expandtab(this)
                    tabinstance.cancelautorun() //stop auto cycling of tabs (if running)
                    return false
                }
                if (this.tabs[i].getAttribute("rev")){ //if "rev" attr defined, store each value within "rev" as an array element
                    this.revcontentids=this.revcontentids.concat(this.tabs[i].getAttribute("rev").split(/\s*,\s*/))
                }
                if (this.enabletabpersistence && parseInt(persistedtab)==i || !this.enabletabpersistence && this.getselectedClassTarget(this.tabs[i]).className=="selected"){
                    this.expandtab(this.tabs[i]) //expand current tab if it's the persisted tab, or if persist=off, carries the "selected" CSS class
                    persisterror=false //Persisted tab (if applicable) was found, so set "persisterror" to false
                    //If currently selected tab's index(i) is greater than 0, this means its not the 1st tab, so set the tab to begin in automode to 1st tab:
                    this.automode_currentTabIndex=(i>0)? 0 : 1
                }
            }
        } //END for loop
        if (persisterror) //if an error has occured while trying to retrieve persisted tab (based on its position within its peers)
            this.expandtab(this.tabs[this.hottabspositions[0]]) //Just select first tab that contains a "rel" attr
        if (parseInt(this.automodeperiod)>500 && this.hottabspositions.length>1){
            this.automode_currentTabIndex=this.automode_currentTabIndex || 0
            this.autoruntimer=setInterval(function(){tabinstance.autorun()}, this.automodeperiod)
        }
    } //END int() function
} //END Prototype assignment
 


/* News Rotator */
//** Featured Content Slider script- (c) Dynamic Drive DHTML code library: http://www.dynamicdrive.com.
//** May 2nd, 08'- Script rewritten and updated to 2.0.
//** June 12th, 08'- Script updated to v 2.3, which adds the following features:
            //1) Changed behavior of script to actually collapse the previous content when the active one is shown, instead of just tucking it underneath the later.
            //2) Added setting to reveal a content either via "click" or "mouseover" of pagination links (default is former).
            //3) Added public function for jumping to a particular slide within a Featured Content instance using an arbitrary link, for example.
//** July 11th, 08'- Script updated to v 2.4:
            //1) Added ability to select a particular slide when the page first loads using a URL parameter (ie: mypage.htm?myslider=4 to select 4th slide in "myslider")
            //2) Fixed bug where the first slide disappears when the mouse clicks or mouses over it when page first loads.
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+='<a href="#'+i+'" class="toc">'+(typeof toc=="string"? toc.replace(/#increment/, i) : toc[i-1])+'</a> '
        }
        phtml=(nextprev[0]!=''? '<a href="#prev" class="prev">'+nextprev[0]+'</a> ' : '') + phtml + (nextprev[1]!=''? '<a href="#next" class="next">'+nextprev[1]+'</a>' : '')
        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")){
            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)
}
}
 
function checkShowLightbox(lightboxName, cookieLimit) {
    if(cookieLimit <= 0) {
        //keine Cookiesteuerung
        return true;
    }

    cookieCount = 1;
    if (document.cookie) {
        cookies = document.cookie.split(";");
        for (i=0; i < cookies.length; i++) {
            if (cookies[i].indexOf(lightboxName) != -1) {
                cookieArr = cookies[i].split("=");
                cookieCount = ++cookieArr[1];
            }
        }
    }
    document.cookie = lightboxName + "=" + cookieCount;
    
    return cookieCount <= cookieLimit;
}