function setStylesheet(title, randomize){ //Main stylesheet switcher function. Second parameter if defined causes a random alternate stylesheet (including none) to be enabled
    var i, cacheobj, altsheets=[""]
    for(i=0; (cacheobj=document.getElementsByTagName("link")[i]); i++) {
        if(cacheobj.getAttribute("rel").toLowerCase()=="alternate stylesheet" && cacheobj.getAttribute("title")) { //if this is an alternate stylesheet with title
            cacheobj.disabled = true
            altsheets.push(cacheobj) //store reference to alt stylesheets inside array
            if(cacheobj.getAttribute("title") == title) //enable alternate stylesheet with title that matches parameter
                cacheobj.disabled = false //enable chosen style sheet
            }
        }
        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, days){ //Interface function to switch style sheets plus save "title" attr of selected stylesheet to cookie
    if (document.getElementById){
        setStylesheet(styletitle)
        setCookie("mysheet", 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 toggleHighContrast() {
    if (readCookie('mysheet') == 'highcontrast') {
         chooseStyle('none',60);
    }
    else {
         chooseStyle('highcontrast',60);
    }
}

function setFontSize(size) {
    setCookie("fontsize", size, 60);
    var p = document.getElementsByTagName('*');
    for(i=0;i<p.length;i++) {
      if(p[i].style.fontSize) {
         var s = parseInt(p[i].style.fontSize.replace("px",""));
      } else {
         var s=14;
      }
      if (size=='l') {
            s=20;
       }
       else if (size=='m') {
           s=12;
       }
       else { //s
            s=9;
       }
       if (p[i].name != 'aops' && p[i].id != 'aopss' && p[i].id != 'aopsm' && p[i].id != 'aopsl' && p[i].id != 'aopsh' && p[i].id != 'a_aopss' && p[i].id != 'a_aopsm' && p[i].id != 'a_aopsl' && p[i].id != 'a_aopsh' ) {
        p[i].style.fontSize = s+"px";
      }
  }
}

function setAccessOptions() {

    var selectedtitle = getCookie("mysheet")
    //alert(selectedtitle);
    if (document.getElementById && selectedtitle != null) { //load user chosen style sheet from cookie if there is one stored
        setStylesheet(selectedtitle);
    }

    var selectedsize = getCookie("fontsize")
    if (document.getElementById && selectedsize != null) {
        setFontSize(selectedsize);
    } 
}
