// functions for setting text size for accessibility, and storing value of text size for during of session

// predermined set of 5 font sizes
var sizesArray = new Array('11px','15px','19px', '23px', '27px');
var lineheightArray = new Array('16px','20px','24px', '28px', '32px');

// get the current value of the font size from session cookie and set the text
function onloadresizetext(contentArea) {
        var currentSize=parseInt(lookupvalue());

	document.getElementById(contentArea).style.fontSize = sizesArray[currentSize];
	document.getElementById(contentArea).style.lineHeight = lineheightArray[currentSize];
}

// change the current value of the font size and store in cookie
function resizetext(contentArea, sizeChange) {
        var currentSize=parseInt(lookupvalue());

	currentSize = currentSize + sizeChange;

	if ( currentSize < 0 ) {
	  currentSize = 0;
	}

	if ( currentSize > 4 ) {
	  currentSize = 4;
	}

        //session cookie
        //document.cookie="textsize="+currentSize;

	//persistent cookie
	writePersistentCookie('textsize',currentSize,'days',1);
		
	document.getElementById(contentArea).style.fontSize = sizesArray[currentSize];

	document.getElementById(contentArea).style.lineHeight = lineheightArray[currentSize];
}

//lookup current value of the text size, if the cookie doesnt exist create it and set the text size to 0
function lookupvalue() {
  var currentSize = getCookieValue("textsize");
  if (currentSize=="") {
    currentSize=0;
    //session cookie
    //document.cookie="textsize=0";

    //persistent cookie
    writePersistentCookie('textsize',currentSize,'days',1);
  } 
  return currentSize;	
}

function writePersistentCookie (CookieName, CookieValue, periodType, offset) {

  var expireDate = new Date ();
  offset = offset / 1;
  
  var myPeriodType = periodType;
  switch (myPeriodType.toLowerCase()) {
    case "years":
      expireDate.setYear(expireDate.getFullYear()+offset);
      break;
    case "months":
      expireDate.setMonth(expireDate.getMonth()+offset);
      break;
    case "days":
      expireDate.setDate(expireDate.getDate()+offset);
      break;
    case "hours":
      expireDate.setHours(expireDate.getHours()+offset);
      break;
    case "minutes":
      expireDate.setMinutes(expireDate.getMinutes()+offset);
      break;
    default:
      alert ("Invalid periodType parameter for writePersistentCookie()");
      break;
  } 
  
  document.cookie = escape(CookieName ) + "=" + escape(CookieValue) + "; expires=" + expireDate.toGMTString() + "; path=/";
}  

function getCookieValue (cookieName) {
  var exp = new RegExp (escape(cookieName) + "=([^;]+)");
  if (exp.test (document.cookie + ";")) {
    exp.exec (document.cookie + ";");
    return unescape(RegExp.$1);
  }
  else return "";
}
