﻿//Makes the heights of the main and sub content areas the same as the larger of the two
function setDivHeights()
{
    var divMain = document.getElementById('divContentMain');
    var divSub  = document.getElementById('divContentSub');
    
    if (divMain.offsetHeight > divSub.offsetHeight) {
        divSub.style.height = divMain.offsetHeight + 'px';
    }
    else if (divMain.offsetHeight < divSub.offsetHeight) {
        divMain.style.height = divSub.offsetHeight + 'px';
    }    
}

//Using the stored 'textSize' cookie, sets the font sizes to those that the user has previously selected
function setFontSizes ()
{
    var allDivs    = document.getElementsByTagName('div');
    var multiplier = parseInt(getCookie('textSize'))
    
    if (multiplier == '' || isNaN(multiplier)) multiplier = 0; 
    
    for (var i = 0; i < allDivs.length; i++) {
        var currDiv = allDivs[i];
        
        if (currDiv.className.indexOf('textSizeable') > -1) {
            if (currDiv.style.fontSize == '') currDiv.style.fontSize = '1.0em';
            
            var newSize = parseFloat(currDiv.style.fontSize) + (multiplier * 0.2) 
            
            currDiv.style.fontSize = roundNumber(newSize, 2) + 'em';          
        } 
    }
}

//Rounds a number to a specified amount of decimal places
function roundNumber(num, dec) 
{
	var result = Math.round(num * Math.pow(10, dec)) / Math.pow(10, dec);
	return result;
}

//Resizes the text in all divs with a class of 'textSizeable'
function resizeText(multiplier)
{
    var allDivs    = document.getElementsByTagName('div');
    var storeMulti = 0;
    
    //Store the selected text size as a cookie so that it can be re-used on other pages
    if (getCookie('textSize') != '') storeMulti = parseInt(getCookie('textSize')); 
    setCookie('textSize', (storeMulti + multiplier));

    for (var i = 0; i < allDivs.length; i++) {
        var currDiv = allDivs[i];
        
        if (currDiv.className.indexOf('textSizeable') > -1) {
            if (currDiv.style.fontSize == '') currDiv.style.fontSize = '1.0em';
            
            var newSize = parseFloat(currDiv.style.fontSize) + (multiplier * 0.2);
                        
            currDiv.style.fontSize = roundNumber(newSize, 2) + 'em';          
        } 
    }
}

//Sets a cookie
function setCookie(cname, value, expiredays) 
{
    var exdate = new Date(); 
    
    exdate.setDate(exdate.getDate() + expiredays);
    document.cookie = cname + "=" + escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString());
}

//Gets a cookie
function getCookie(cname) 
{
    if (document.cookie.length > 0) {
        cstart = document.cookie.indexOf(cname + "=");
        if (cstart != -1) { 
            cstart = cstart + cname.length + 1; 
            cend = document.cookie.indexOf(";", cstart);
            if (cend == -1) cend = document.cookie.length;
            return unescape(document.cookie.substring(cstart, cend));
        } 
    }
    return '';
}
        
//Show an element
function show(elementID) 
{
    document.getElementById(elementID).style.display = 'block';
}

//Show an element as inline
function showInline(elementID)
{
    document.getElementById(elementID).style.display = 'inline';
}

//Show an element as a table-row
function showRow(elementID)
{
    var disp = (navigator.userAgent.indexOf('MSIE') != -1 && navigator.userAgent.indexOf('Opera') == -1) ? 'block' : 'table-row'; 
    document.getElementById(elementID).style.display = disp;
}

//Show an element as a table-body
function showTbody(elementID)
{
    var disp = (navigator.userAgent.indexOf('MSIE') != -1 && navigator.userAgent.indexOf('Opera') == -1) ? 'block' : 'table-body'; 
    document.getElementById(elementID).style.display = disp;
}

//Show an element as a table 
function showTable(elementID)
{
    var disp = (navigator.userAgent.indexOf('MSIE') != -1 && navigator.userAgent.indexOf('Opera') == -1) ? 'block' : 'table';
    document.getElementById(elementID).style.display = disp;
}

//Hide an element 
function hide(elementID) 
{
    document.getElementById(elementID).style.display = 'none';
}

//Hide an element after a delay of 200ms
function delayHide(elementID) 
{
    hideThis = elementID; 
    setTimeout('hide(hideThis);', 200);
}
  