﻿
//
// Preload following images for smooth menu hover effects
//
pic1 = new Image(20, 20);
pic1.src = "/App_Themes/riskdisk/images/menu/gray.gif";

pic2 = new Image(20, 20);
pic2.src = "/App_Themes/riskdisk/images/menu/gray_0.gif";

pic3 = new Image(20, 20);
pic3.src = "/App_Themes/riskdisk/images/menu/gray_12.gif";

pic4 = new Image(20, 20);
pic4.src = "/App_Themes/riskdisk/images/menu/gray_left.gif";

pic5 = new Image(20, 20);
pic5.src = "/App_Themes/riskdisk/images/menu/gray_left_0.gif";

pic6 = new Image(20, 20);
pic6.src = "/App_Themes/riskdisk/images/menu/gray_right.gif";

pic7 = new Image(20, 20);
pic7.src = "/App_Themes/riskdisk/images/menu/gray_right_12.gif";

pic8 = new Image(20, 20);
pic8.src = "/App_Themes/riskdisk/images/menu/pink.gif";

pic9 = new Image(20, 20);
pic9.src = "/App_Themes/riskdisk/images/backgrounds/tree_menu_back.gif";

pic10 = new Image(20, 20);
pic10.src = "/App_Themes/riskdisk/images/backgrounds/tree_menu_back_hover.gif";

pic11 = new Image(20, 20);
pic11.src = "/App_Themes/riskdisk/images/backgrounds/tree_menu_back_selected.gif";

pic12 = new Image(20, 20);
pic12.src = "/App_Themes/riskdisk/images/buttons/small_pink_button.gif";

pic13 = new Image(20, 20);
pic13.src = "/App_Themes/riskdisk/images/buttons/small_pink_button_hover.gif";

pic14 = new Image(20, 20);
pic14.src = "/App_Themes/riskdisk/images/buttons/normal_pink_button.gif";

pic15 = new Image(20, 20);
pic15.src = "/App_Themes/riskdisk/images/buttons/normal_pink_button_hover.gif";

pic16 = new Image(20, 20);
pic16.src = "/App_Themes/riskdisk/images/buttons/large_pink_button.gif";

pic17 = new Image(20, 20);
pic17.src = "/App_Themes/riskdisk/images/buttons/large_pink_button_hover.gif";

pic18 = new Image(20, 20);
pic18.src = "/App_Themes/riskdisk/images/buttons/tiny_pink_button.gif";

pic19 = new Image(20, 20);
pic19.src = "/App_Themes/riskdisk/images/buttons/tiny_pink_button_hover.gif";


//
// Determine which menu item is being selected
//
var _currentCellIndex;
function determinSelectedMenuItem1(cellIndex)
{
    switch (cellIndex)
    {
        case 1:
            _currentCellIndex = 1;
            break;

        case 2:
            _currentCellIndex = 3;
            break;

        case 3:
            _currentCellIndex = 5;
            break;

        case 4:
            _currentCellIndex = 7;
            break;

        case 5:
            _currentCellIndex = 9;
            break;

        case 6:
            _currentCellIndex = 11;
            break;
            
        default:
            return;
    }

    determinSelectedMenuItem2();
}
function determinSelectedMenuItem2()
{
    var cells = document.getElementById("tableMenu").getElementsByTagName("td");
    if (_currentCellIndex != null)
    {
        menuHover(cells[_currentCellIndex]);
        cells[_currentCellIndex].className = "textColumnSelected";
    }
}

//
// Menu item mouse hover function
//
function menuHover(cell)
{
    if (cell.className != "textColumnSelected")
    {
        cell.className = "textColumnHover";
    }

    var cellIndex = cell.cellIndex;
    var cellLeft = cell.parentNode.cells[cellIndex - 1];
    var cellRight = cell.parentNode.cells[cellIndex + 1];

    if (cellIndex == 1)
    {
        cellLeft.className = "overlayColumnLeft0";
    }
    else
    {
        // if the left cell is already selected
        if (cellLeft.className == "overlayColumnRight")
        {
            cellLeft.className = "overlayColumnLeftActive";
        }
        else
        {
            cellLeft.className = "overlayColumnLeft";
        }
    }

    if (cellIndex == 11)
    {
        cellRight.className = "overlayColumnRight12";
    }
    else
    {
        if (cellRight.className == "overlayColumnLeft")
        {
            cellRight.className = "overlayColumnLeftActive";
        }
        else
        {
            cellRight.className = "overlayColumnRight";
        }
    }
}

//
// Menu item mouse leave function
//
function menuNormal(cell)
{
    if (cell.className != "textColumnSelected")
    {
        cell.className = "textColumn";

        var cellIndex = cell.cellIndex;
        var cellLeft = cell.parentNode.cells[cellIndex - 1];
        var cellRight = cell.parentNode.cells[cellIndex + 1];

        if (cellIndex == 1)
        {
            cellLeft.className = "overlayColumn0";
        }
        else
        {
            cellLeft.className = "overlayColumn";
        }

        if (cellIndex == 11)
        {
            cellRight.className = "overlayColumn12";
        }
        else
        {
            cellRight.className = "overlayColumn";
        }
    }

    determinSelectedMenuItem2();
}

//
// Menu item clicked - show page
//
function showPage(cell)
{
    var span = cell.getElementsByTagName("span")[0];
    var url = span.getAttribute("url");

    if (url == undefined || url == "")
    {
        window.location = "/";
    }
    else
    {
        window.location = url;
    }
}


//
// remove "Username" and "Password" labels on textboxes focus
//
function textboxFocus(textbox)
{
    textbox.className = "textboxNormal";
}

function formatLoginArea(tbxUsernameId, tbxPasswordId)
{
    var tbxUsername = document.getElementById(tbxUsernameId);
    if (tbxUsername != null && tbxUsername.value != "")
    {
        textboxFocus(tbxUsername);
    }

    var tbxPassword = document.getElementById(tbxPasswordId);
    if (tbxPassword != null && tbxPassword.value != "")
    {
        textboxFocus(tbxPassword);
    }
}

//
// print page function
//
function printPage()
{
    try
    {
        var divSubPageHeaders = document.getElementById("divSubPageHeaderContainer").innerHTML;

        var headerFirstHalf = divSubPageHeaders.substring(0, divSubPageHeaders.indexOf("divPageFunctions") + 16);
        var headerSecondHalf = divSubPageHeaders.substring(divSubPageHeaders.indexOf("divPageFunctions") + 16);

        divSubPageHeaders = headerFirstHalf + " style=\"visibility: hidden;\" " + headerSecondHalf;

        var styles = "";
        for (i = 0; i < document.styleSheets.length; i++)
        {
            if (document.styleSheets[i] != null
                        && document.styleSheets[i].href != null)
            {
                var href = document.styleSheets[i].href;
                styles += "<link href=\"" + href + "\" type=\"text/css\" rel=\"stylesheet\" />\n";
            }
        }

        var content = document.getElementById("tableHtml").getElementsByTagName("td")[0].innerHTML;
        var child = window.open("", "_blank", "width=640,height=480,scrollbars=1,resizable=1");
        var doctype = "<!DOCTYPE html PUBLIC \" - //W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">";
        var javascriptPrint = "<script type=\"text/javascript\">window.print();</" + "script>";
        var html = doctype +
                    "<html><head>" + styles +
                    "</head><body style='padding: 20px 10px 10px 20px;'>" +
                    divSubPageHeaders + content + javascriptPrint +
                    "</body></html>";

        child.document.open();
        child.document.write(html);
        child.document.close();

    }
    catch (err) { }
}

//
// Share Page/Send to Colleague function
//
function sharePage()
{
    var url = "SharePage.aspx?refer=" + escape(document.location.href);
    window.open(url, "_blank", "width=640,height=480,scrollbars=no,resizable=no");
}

function addLoadEvent(func)
{
    // Grab a reference to the old onload object before we start
    // dicking about with it:-
    var oldonload = window.onload;

    // Check if window.onload has not already been assigned a function:-
    if (typeof window.onload != 'function')
    {
        // No functions have been registered yet, so simply assign
        // 'func' to window.onload:-
        window.onload = func;
    }
    else
    {
        // We've already had some functions assigned to window.onload
        // so create a brand new function ...
        window.onload = function()
        {
            // ... which includes running the scripts registered in the
            // original onload handler ... 	
            if (oldonload)
            {
                oldonload();
            }

            // ... and finally also includes the new handler:-
            func();
        }
    }
}

//
// Get query string value util function
//
function getQueryStringValue(variable)
{
    var query = window.location.search.substring(1);
    var vars = query.split("&");
    for (var i = 0; i < vars.length; i++)
    {
        var pair = vars[i].split("=");
        if (pair[0] == variable)
        {
            return pair[1];
        }
    }
}

//
// Override links to PAYG site to include lead source
//
function appendLeadSourceToPAYG(leadsource)
{
    var links = document.getElementsByName("PAYGLink");
    for (i = 0; i < links.length; i++)
    {
        if (links.item(i).href.indexOf("?") >= 0)
        {
            links.item(i).href = links.item(i).href + "&leadsource=" + leadsource;
        }
        else
        {
            links.item(i).href = links.item(i).href + "?leadsource=" + leadsource;
        }
    }
}

//
// Font Detector!
//
var Detector = function()
{
    var h = document.getElementsByTagName("BODY")[0];
    var d = document.createElement("DIV");
    var s = document.createElement("SPAN");
    d.appendChild(s);
    d.style.fontFamily = "sans"; 		//font for the parent element DIV.
    s.style.fontFamily = "sans"; 		//serif font used as a comparator.
    s.style.fontSize = "72px"; 		//we test using 72px font size, we may use any size. I guess larger the better.
    s.innerHTML = "mmmmmmmmmmlil"; 	//we use m or w because these two characters take up the maximum width. And we use a L so that the same matching fonts can get separated
    h.appendChild(d);
    var defaultWidth = s.offsetWidth; 	//now we have the defaultWidth
    var defaultHeight = s.offsetHeight; //and the defaultHeight, we compare other fonts with these.
    h.removeChild(d);
    /* test
    * params:
    * font - name of the font you wish to detect
    * return: 
    * f[0] - Input font name.
    * f[1] - Computed width.
    * f[2] - Computed height.
    * f[3] - Detected? (true/false).
    */
    function debug(font)
    {
        h.appendChild(d);
        var f = [];
        f[0] = s.style.fontFamily = font; // Name of the font
        f[1] = s.offsetWidth; 			// Width
        f[2] = s.offsetHeight; 			// Height
        h.removeChild(d);
        font = font.toLowerCase();
        if (font == "serif")
        {
            f[3] = true; // to set arial and sans-serif true
        } else
        {
            f[3] = (f[1] != defaultWidth || f[2] != defaultHeight); // Detected?
        }
        return f;
    }
    function test(font)
    {
        f = debug(font);
        return f[3];
    }
    this.detailedTest = debug;
    this.test = test;
}
