
var manual_or_random="manual" //"manual" or "random"
var randomsetting="3 days" //"eachtime", "sessiononly", or "x days (replace x with desired integer)". Only applicable if mode is random.

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 null
}

function setCookie(name, value, days)
{ var expireDate = new Date()
  var expstring=(typeof days!="undefined")? expireDate.setDate(expireDate.getDate()+parseInt(days)) : expireDate.setDate(expireDate.getDate()-5)
  document.cookie = name+"="+value+"; expires="+expireDate.toGMTString()+"; path=/";
}

function deleteCookie(name)
{ setCookie(name, "moot")
}

function setStylesheet(title, title_mask, randomize)
{ var i, cacheobj, altsheets=[""], t
  for(i=0; (cacheobj=document.getElementsByTagName("link")[i]); i++)
  { t = cacheobj.getAttribute("title")
    if(cacheobj.getAttribute("rel").toLowerCase().indexOf("alt")!=-1 && t)
    { if (t.indexOf(title_mask) != -1)
      { cacheobj.disabled = true
        altsheets.push(cacheobj)
        if(t == title)
         cacheobj.disabled = false
      }
    }
  }
  if (typeof randomize!="undefined")
  { //if second paramter is defined, randomly enable an alt style sheet (includes non)
    var randomnumber=Math.floor(Math.random()*altsheets.length)
    altsheets[randomnumber].disabled=false
  }
  return (typeof randomize!="undefined" && altsheets[randomnumber]!="")? altsheets[randomnumber].getAttribute("title") : "" //if in "random" mode, return "title" of randomly enabled alt stylesheet
}

function chooseStyle(styletitle, title_mask, cookiename, days)
{ //Interface function to switch style sheets plus save "title" attr of selected stylesheet to cookie
  if (document.getElementById)
  { setStylesheet(styletitle, title_mask)
    setCookie(cookiename, styletitle, days)
  }
}

function indicateSelected(element)
{ //Optional function that shows which style sheet is currently selected within group of radio buttons or select menu
  if (selectedtitle!=null && (element.type==undefined || element.type=="select-one"))
  { //if element is a radio button or select menu
    var element=(element.type=="select-one") ? element.options : element
    for (var i=0; i<element.length; i++)
    { if (element[i].value==selectedtitle)
      { //if match found between form element value and cookie value
        if (element[i].tagName=="OPTION") //if this is a select menu
         element[i].selected=true
        else //else if it's a radio button
         element[i].checked=true
        break
      }
    }
  }
}
 
 function get_stylesheets(title_mask)
 { var i, cacheobj, altsheets=new Array(), next=0
   
   for(i=0; (cacheobj=document.getElementsByTagName("link")[i]); i++)
   { t = cacheobj.getAttribute("title")
     if (cacheobj.getAttribute("rel").toLowerCase().indexOf("alt")!=-1 && t)
     { if (t.indexOf(title_mask) != -1)
       { cacheobj.disabled = true
         altsheets.push(cacheobj)
       }
     }
   }
   return altsheets
 }

 function next_stylesheet(cookie_name, title_mask)
 { var selectedtitle=getCookie(cookie_name)
   var i, cacheobj, altsheets=get_stylesheets(title_mask), next=0
   
   if (selectedtitle==null)
    selectedtitle=altsheets[0].getAttribute("title")
   for(i=0; i < altsheets.length; i++)
   { altsheets[i].disabled = true
     if (altsheets[i].getAttribute("title") == selectedtitle)
     { next = i+1
       if (next > (altsheets.length-1))
        next = altsheets.length-1
         //cacheobj.disabled = false
     }
   }
   chooseStyle(altsheets[next].getAttribute("title"), title_mask, cookie_name, 60)
 }

 function prev_stylesheet(cookie_name, title_mask)
 { var selectedtitle=getCookie(cookie_name)
   var i, cacheobj, altsheets=get_stylesheets(title_mask), next=0
   
   if (selectedtitle==null)
    selectedtitle=altsheets[0].getAttribute("title")
   for(i=0; i < altsheets.length; i++)
   { altsheets[i].disabled = true
     if (altsheets[i].getAttribute("title") == selectedtitle)
     { next = i-1
       if (next < 0)
        next = 0
         //cacheobj.disabled = false
     }
   }
   chooseStyle(altsheets[next].getAttribute("title"), title_mask, cookie_name, 60)
 }
 
 function greater_font()
 { next_stylesheet(body_sheet_cn, "body_")
 }

 function smaller_font()
 { prev_stylesheet(body_sheet_cn, "body_")
 }

 function small_screen()
 { next_stylesheet(dim_sheet_cn, "main_tab_")
 }

 function large_screen()
 { prev_stylesheet(dim_sheet_cn, "main_tab_")
 }

 function text_screen_on(sheet)
 { var img = document.getElementById("text_style_sheet_icon")
   
   sheet.disabled=false
   if (img)
    img.src=text_icons[0]
   act_text_icon = 0
   setCookie(text_sheet_cn, "off", 90)
 }

 function text_screen_off(sheet)
 { var img = document.getElementById("text_style_sheet_icon")
   
   sheet.disabled=true
   if (img)
    img.src=text_icons[1]
   act_text_icon = 1
   setCookie(text_sheet_cn, "on", 90)
 }

 function text_screen()
 { var selectedtitle=getCookie(text_sheet_cn)
   var i, altsheets=get_stylesheets("text_")
   
   if ((selectedtitle==null) || (selectedtitle=="") || (selectedtitle=="off"))
   { text_screen_off(altsheets[0])
   }
   else
   { text_screen_on(altsheets[0])
   }
 }

 function hicontr_screen_on(sheet)
 { var img = document.getElementById("hicontr_style_sheet_icon")
   
   sheet.disabled=false
   if (img)
    img.src=hicontr_icons[0]
   act_hicontr_icon = 0
   setCookie(hicontr_sheet_cn, "off", 90)
 }

 function hicontr_screen_off(sheet)
 { var img = document.getElementById("hicontr_style_sheet_icon")
   
   sheet.disabled=true
   if (img)
    img.src=hicontr_icons[1]
   act_hicontr_icon = 1
   setCookie(hicontr_sheet_cn, "on", 90)
 }

 function hicontr_screen()
 { var selectedtitle=getCookie(hicontr_sheet_cn)
   var i, altsheets=get_stylesheets("hicontr_")
   
   if ((selectedtitle==null) || (selectedtitle=="") || (selectedtitle=="off"))
   { hicontr_screen_off(altsheets[0])
   }
   else
   { hicontr_screen_on(altsheets[0])
   }
 }

var body_sheet_cn = "body_sheet"
var dim_sheet_cn = "dim_sheet"
var text_sheet_cn = "text_sheet"
var text_icons = Array(tmpl_dir+"img/icon_text_on.png", tmpl_dir+"img/icon_text.png")
var act_text_icon = 1
var hicontr_sheet_cn = "hicontr_sheet"
var hicontr_icons = Array(tmpl_dir+"img/icon_hi_contrast_on.png", tmpl_dir+"img/icon_hi_contrast.png")
var act_hicontr_icon = 1

if (manual_or_random=="manual")
{ //IF MANUAL MODE
  var selectedtitle=getCookie(body_sheet_cn)
  if (document.getElementById && selectedtitle!=null)
   setStylesheet(selectedtitle, "body_")

  selectedtitle=getCookie(dim_sheet_cn)
  if (document.getElementById && selectedtitle!=null)
   setStylesheet(selectedtitle, "main_tab_")

  selectedtitle=getCookie(text_sheet_cn)
  if (document.getElementById && selectedtitle=="off")
  { var altsheets=get_stylesheets("text_")
    altsheets[0].disabled=false
    act_text_icon = 0
  }

  selectedtitle=getCookie(hicontr_sheet_cn)
  if (document.getElementById && selectedtitle=="off")
  { var altsheets=get_stylesheets("hicontr_")
    altsheets[0].disabled=false
    act_hicontr_icon = 0
  }
}
else
 if (manual_or_random=="random")
 { //IF AUTO RANDOM MODE
   if (randomsetting=="eachtime")
    setStylesheet("", "random")
   else
    if (randomsetting=="sessiononly")
    { //if "sessiononly" setting
      if (getCookie("mysheet_s")==null) //if "mysheet_s" session cookie is empty
       document.cookie="mysheet_s="+setStylesheet("", "random")+"; path=/" //activate random alt stylesheet while remembering its "title" value
      else
       setStylesheet(getCookie("mysheet_s")) //just activate random alt stylesheet stored in cookie
    }
    else
     if (randomsetting.search(/^[1-9]+ days/i)!=-1)
     { //if "x days" setting
       if (getCookie("mysheet_r")==null || parseInt(getCookie("mysheet_r_days"))!=parseInt(randomsetting))
       { //if "mysheet_r" cookie is empty or admin has changed number of days to persist in "x days" variable
         setCookie("mysheet_r", setStylesheet("", "random"), parseInt(randomsetting)) //activate random alt stylesheet while remembering its "title" value
         setCookie("mysheet_r_days", randomsetting, parseInt(randomsetting)) //Also remember the number of days to persist per the "x days" variable
       }
       else
        setStylesheet(getCookie("mysheet_r")) //just activate random alt stylesheet stored in cookie
     } 
 }


// Ktcn
//var o = document.getElementById('body').style
//var fs = getCookie("font_size")
//if (fs)
// o.fontSize = fs