﻿// JScript File

//Global variables
var currentSize = null;
var maxSize = 20;
var minSize = 12;


//window.onload = init();
$(document).ready(function(){
    init();
});


function init() 
{
   // Check for and load saved font size
   checkFont();
        
   // Add font sizer event handlers
   fontEvent();
    
   // Check whether high contrast cookie is set
   checkContrast();
   
   // Add contrast event handlers
   contrastEvent();   
}




//*************************************************************************************************
// Font sizer

// Check for font size cookie - if one is set, load the saved font size
function checkFont() 
{
    if (readCookie("font")) 
    {
        var newSize = readCookie("font");
        
        var defaultSize = $(".resizeableContent").css("font-size");
        defaultSize = defaultSize.replace(/[^0-9]/g, ''); 
        
        
        // Relatively resize any child elements that have a font-size overriden from the parent container
        $(".resizeableContent").children().each(function () 
        {
            var sizeAttr = $(this).css("font-size");
        
            sizeAttr = sizeAttr.replace(/[^0-9]/g, '');
            sizeAttr = (parseInt(sizeAttr, 10) - parseInt(defaultSize, 10)) + parseInt(newSize, 10);
            $(this).css("font-size", sizeAttr + "px");
            
            
            // the Banner should always remain the default size
            if ($(this).attr("id") == "Banner") 
            {        
                $(this).css("font-size", "12px");   
            }                       
          
        });
        
        // Resize the font-size on the parent container
        $(".resizeableContent").css("font-size", newSize + "px");   
    }
}

// Set up font sizer event handlers
function fontEvent() 
{    
    $("#SiteFunctions a").eq(0).click(function(){scaleFonts(-2)});
    $("#SiteFunctions a").eq(1).click(function(){scaleFonts(2)});

    currentSize = $(".resizeableContent").css("font-size");
}   
   
function scaleFonts(step)
{
    if(currentSize == null)
    {
        // assume the current size is 12 if it hasn't been set
        currentSize = "12px";
    }
    
    var newSize = currentSize;
    
    newSize = newSize.replace(/[^0-9]/g, ''); 
    newSize = (newSize * 1) + step;
    
    // only resize to max or min
    if(newSize <= maxSize && newSize >= minSize)
    {            
        // Relatively resize any child elements that have a font-size overriden from the parent container
        $(".resizeableContent").children().each(function () 
        {
            var sizeAttr = $(this).css("font-size");
        
            sizeAttr = sizeAttr.replace(/[^0-9]/g, ''); 
            sizeAttr = (sizeAttr * 1) + step;
            
            $(this).css("font-size", sizeAttr + "px");
            
            
            // the Banner should always remain the default size
            if ($(this).attr("id") == "Banner") 
            {        
                $(this).css("font-size", "12px");   
            }                       
          
        });
        
        // Resize the font-size on the parent container
        $(".resizeableContent").css("font-size", newSize + "px");   
     
            
        //currentSize = sizeAttr + "px";
        currentSize = $(".resizeableContent").css("font-size");
        
        eraseCookie("font");
        createCookie("font", newSize);    
    }
}




//*************************************************************************************************
/* CONTRAST */
// Check whether contrast cookie exists, if it does then apply the high contrast styles on page load
function checkContrast() 
{
   var isSet = readCookie('contrast');
   
   if (isSet) 
   {
      var bodyClass = document.body.className;
      bodyClass = bodyClass + " contrast";
      
      if (navigator.appName == "Microsoft Internet Explorer") 
      {
         document.body.setAttribute('className', bodyClass);
      }
      else 
      {
         document.body.setAttribute('class', bodyClass);
      }
   }
}

// Change the contrast from default to high contrast and back again
function doContrast() 
{
    var docBody = document.body;
    var bodyClass = document.body.className;  
    var isContrast = bodyClass.split('cont');
   
    if (isContrast[1] == "rast") 
    {
        var newClass = bodyClass.split(' cont');
        newClass = newClass[0];
        contrastCookie = false;
        eraseCookie("contrast");
    }
    else 
    {
         var newClass = bodyClass + " contrast";
         contrastCookie = true; // Set contrast cookie
         createCookie("contrast", contrastCookie);
    }
   
    if (navigator.appName == "Microsoft Internet Explorer") 
    {
        docBody.setAttribute('className', newClass);
    }
    else 
    {
       docBody.setAttribute('class', newClass);
    }
}

// Add the event handler to the contrast text
function contrastEvent() 
{
    $("#SiteFunctions a").eq(2).click(function(){doContrast()}); 
}





//*************************************************************************************************
/* COOKIES... om nom nom */
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
    {
        var 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 eraseCookie(name) 
{
    createCookie(name,"",-1);
}