function getCookies(aCookieNames,aCookieValues) {
  var aCookies=document.cookie.split('; ');
  var aThisCookie = new Array();

  for(x=0; x<aCookies.length; ++x) {
    aThisCookie = aCookies[x].split('=');
    aCookieNames.push(unescape(aThisCookie[0]));
    aCookieValues.push(unescape(aThisCookie[1]));
  }
}

function getCookie(sName) {
  var aNames = new Array();
  var aValues = new Array();
  getCookies(aNames,aValues);
  var i=-1,x;
  
  for(x=0; x<aNames.length; ++x) {
    if(aNames[x] == sName) {
      i=x;
      break;
    }
  }
  
  if(i > -1)
    return(aValues[i]);
  else
    return(null);
}

function printCookies() {
  var aNames = new Array();
  var aValues = new Array();
  getCookies(aNames,aValues);
  var x;
  
  for(x=0; x<aNames.length; ++x)
    document.write(x+"\t"+aNames[x]+"\t= "+aValues[x]+"<br>");
}

function setCookie(sName,sValue) {
  var dExpires = new Date();
  dExpires.setDate(dExpires.getDate()+365);

  document.cookie = escape(sName) + '=' + escape(sValue)
                  + ';expires='+dExpires.toUTCString()
				  + ';path=/';
}

function onLoad() {
  var sValue = getCookie('fontstyle');
  if(sValue)
    changeStyle(sValue);
  else
    changeStyle('font-s');
}

function onUnLoad() {
  var sValue = getCurrentStyle();
  if(sValue)
    setCookie('fontstyle',sValue);
}

function getCurrentStyle() {
  	var i;	
	var oSS = getFontStyleSheets();
	var sResult = null;
	
	for(i=0; i<oSS.aLinks.length; ++i) {
	  if(!oSS.aLinks[i].disabled) {
	    sResult = oSS.aTitles[i];
		break;
	  }
	}
	
	return(sResult);
}

  function getFontStyleSheets() {
  	var i;	
	var aLinks = document.getElementsByTagName('link');
	var sSearch = 'font-';
	var sThisTitle;
        var aResLinks = new Array();
        var aResTitles = new Array();
        
	for(i=0; i<aLinks.length; ++i) {
	    sThisTitle = aLinks[i].getAttribute('title');
	    if(sThisTitle.substr(0,sSearch.length) == sSearch) {
	      aResLinks.push(aLinks[i]);
              aResTitles.push(sThisTitle);
            }
        }
        
        // Return object with two properties aLinks,aTitles
        //  which contain arrays of <link> objects and their
        //  title attributes, respectively
        return({aLinks:aResLinks, aTitles:aResTitles});
  }
  
  function changeStyle(sNewStyle) {
  	var i;	
	var oSS = getFontStyleSheets();
        var aLinks = oSS.aLinks;
        var aTitles = oSS.aTitles;
        var bTitleValid = false;
	
        // check that sNewStyle is valid
	    for(i=0; i<aTitles.length; ++i) {
            if(aTitles[i] == sNewStyle) {
                bTitleValid = true;
                break;
            }
        }
        
        // If valid, Disable all styles but sNewStyle
	if(bTitleValid)
            for(i=0; i<aLinks.length; ++i)
                aLinks[i].disabled = (aTitles[i] != sNewStyle);
  }
  
