var screenSize;
var active;
var contrast = "normal";
var styleSheet = "normal";

function fontsizeup() {
  active = getActiveStyleSheet();
  switch (active) {
    case 'small' : 
      setActiveStyleSheet('normal');
      break;
    case 'normal' : 
      setActiveStyleSheet('large');
      break;
    case 'large' : 
      setActiveStyleSheet('larger');
      break;
    case 'larger' : 
      setActiveStyleSheet('largest');
      break;
    case 'largest' :
      break;
    case 'low resolution small' : 
	  setActiveStyleSheet('low resolution normal');
      break;
	case 'low resolution normal' : 
	  setActiveStyleSheet('low resolution large');
	  break;
	case 'low resolution large' : 
	  setActiveStyleSheet('low resolution larger');
	  break;
	case 'low resolution larger' : 
	  setActiveStyleSheet('low resolution largest');
	  break;
	case 'low resolution largest' :
      break;
    case 'high contrast small' : 
	  setActiveStyleSheet('high contrast normal');
	  break;
	case 'high contrast normal' : 
	  setActiveStyleSheet('high contrast large');
	  break;
	case 'high contrast large' : 
	  setActiveStyleSheet('high contrast larger');
	  break;
	case 'high contrast larger' : 
	  setActiveStyleSheet('high contrast largest');
	  break;
	case 'high contrast largest' :
      break;
    case 'high contrast low resolution small' : 
	  setActiveStyleSheet('high contrast low resolution normal');
	  break;
	case 'high contrast low resolution normal' : 
	  setActiveStyleSheet('high contrast low resolution large');
	  break;
	case 'high contrast low resolution large' : 
	  setActiveStyleSheet('high contrast low resolution larger');
	  break;
	case 'high contrast low resolution larger' : 
	  setActiveStyleSheet('high contrast low resolution largest');
	  break;
	case 'high contrast low resolution largest' :
     break;
    default :
      setActiveStyleSheet('normal');
      break;
  }
}

function fontsizedown() {
  active = getActiveStyleSheet();
  switch (active) {
    case 'largest' : 
      setActiveStyleSheet('larger');
      break;
    case 'larger' : 
      setActiveStyleSheet('large');
      break;
    case 'large' : 
      setActiveStyleSheet('normal');
      break;
    case 'normal' : 
      setActiveStyleSheet('small');
      break;
    case 'small' : 
       break;
    case 'low resolution largest' : 
	  setActiveStyleSheet('low resolution larger');
	  break;
	case 'low resolution larger' : 
	  setActiveStyleSheet('low resolution large');
	  break;
	case 'low resolution large' : 
	  setActiveStyleSheet('low resolution normal');
	  break;
	case 'low resolution normal' : 
	  setActiveStyleSheet('low resolution small');
	  break;
	  case 'low resolution small' : 
      break;
    case 'high contrast largest' : 
	  setActiveStyleSheet('high contrast larger');
	  break;
	case 'high contrast larger' : 
	  setActiveStyleSheet('high contrast large');
	  break;
	case 'high contrast large' : 
	  setActiveStyleSheet('high contrast normal');
	  break;
	case 'high contrast normal' : 
	  setActiveStyleSheet('high contrast small');
	  break;
	case 'high contrast small' : 
      break;
    case 'high contrast low resolution largest' : 
	  setActiveStyleSheet('high contrast low resolution larger');
	  break;
	case 'high contrast low resolution larger' : 
	  setActiveStyleSheet('high contrast low resolution large');
	  break;
	case 'high contrast low resolution large' : 
	  setActiveStyleSheet('high contrast low resolution normal');
	  break;
	case 'high contrast low resolution normal' : 
	  setActiveStyleSheet('high contrast low resolution small');
	  break;
	  case 'high contrast low resolution small' : 
      break;
    default :
      setActiveStyleSheet('normal');
      break;
  }
  
}


function setActiveStyleSheet(title) {
 
  var i, a, main;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
      a.disabled = true;
      if(a.getAttribute("title") == title) a.disabled = false;
    }
  }
}


function getActiveStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
  }
  return null;
}


function getPreferredStyleSheet() {
	if(screenSize == "small") {
		
		return ('small');
	}
  return ('normal');
}


function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}


function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');

  for(var i=0;i < ca.length;i++) {

    var c = ca[i];

    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) 
    return c.substring(nameEQ.length,c.length);
  }
  return null;
  
}


function setContrast() {
	styleSheet = getActiveStyleSheet();
	if(contrast == "normal") { contrast = "high"; setActiveStyleSheet("high contrast " + styleSheet); } else { if(styleSheet.substring(0, 3) == "hig") { styleSheet = styleSheet.substring(14);
		} contrast = "normal"; setActiveStyleSheet(styleSheet); }

}


function resetToNormal() {
	if(screenSize == "small") {
		setActiveStyleSheet("low resolution normal")
	} else {
		setActiveStyleSheet("normal");
	}
}


window.onload = function(e) {
	var styleSheetName;
	
	//check screen size
  if(screen.width < 801) {
  	screenSize = "small"
  } else (screenSize = "large");
  
  	//get cookie
  var styleFromCookie = readCookie("style");
  if(isValid(styleFromCookie))
  {
  	 styleSheetName = styleFromCookie;
  } else {
  	if (screenSize == "large")
  	{
  		styleSheetName = "normal";
  	} else {
  		styleSheetName = "low resolution normal";
  	}
  	
  }

	//if user is on a lowres screen but has a cookie for a high res prepend "low resolution" to serve correct stylesheet
  if(screenSize == "small") {
  	if(styleSheetName.substring(0, 3) == "low") {
  		setActiveStyleSheet(styleSheetName);
  	} else (styleSheetName = "low resolution " + styleSheetName);
  }
  
  
  //if user is on a highres screen but has a cookie for a low res remove "low resolution" to serve correct stylesheet
  if(screenSize == "large" && styleSheetName.substring(0, 3) == "low") {
  	styleSheetName = styleSheetName.substring(15);
  }
  setActiveStyleSheet(styleSheetName);
}


window.onunload = function(e) {
  var title = getActiveStyleSheet();
  createCookie("style", title, 365);
}


//checks styleSheet name to check if it is an expected value
function isValid(styleSheet) {
	if(
	
	styleSheet == "small" ||
	styleSheet == "normal" ||
	styleSheet == "large" ||
	styleSheet == "larger" ||
	styleSheet == "largest" ||
	styleSheet == "low resolution small" ||
	styleSheet == "low resolution normal" ||
	styleSheet == "low resolution large" ||
	styleSheet == "low resolution larger" ||
	styleSheet == "low resolution largest" ||
	styleSheet == "low resolution high contrast small" ||
	styleSheet == "low resolution high contrast normal" ||
	styleSheet == "low resolution high contrast large" ||
	styleSheet == "low resolution high contrast larger" ||
	styleSheet == "low resolution high contrast largest" ||
	styleSheet == "high contrast small" ||
	styleSheet == "high contrast normal" ||
	styleSheet == "high contrast large" ||
	styleSheet == "high contrast larger" ||
	styleSheet == "high contrast largest"
	
	)
	{
		return true;
	}
	return false;

}

var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();

setActiveStyleSheet(title);
