﻿var openAnswer = null;

function addEvent(elm, evType, fn, useCapture)
{
    if (elm.addEventListener)
    {
        elm.addEventListener(evType, fn, useCapture);
        return true;
    }
    else if (elm.attachEvent)
    {
        var r = elm.attachEvent('on' + evType, fn);
        return r;
    }
    else
    {
        elm['on' + evType] = fn;
    }
}

function findTarget(e)
{
    var target;
    if (window.event && window.event.srcElement)
        target = window.event.srcElement;
    else if (e && e.target)
        target = e.target;
    if (!target)
        return null;

    return target;
}

function init()
{
    if (!document.getElementById) return;

    var faq = document.getElementById('faq');
    var questions = faq.getElementsByTagName('a');
    for (var i = 0; i < questions.length; i++)
    {
        if (questions[i].className == 'question')
        {
            addEvent(questions[i], 'click', showAnswer, false);
        }
    }

    //if specific FAQ question is requested in URL display it.
    var winHash = window.location.hash;
    winHash = winHash.replace('#', '');
    if (winHash != "")
    {
        displayAnswerByHash(winHash);
    }
}

function displayAnswerByHash(winHash)
{
    var question = document.getElementById(winHash);
    var answer;
    if (question != null)
    {
        answer = getAnswer(question);
        answer.style.display = 'block';
    }
}

function getAnswer(question)
{
    var questionContainer = question;
    while (questionContainer.nodeName.toLowerCase() != 'dt')
    {
        questionContainer = questionContainer.parentNode;
    }
    var answer = questionContainer.nextSibling;
    while (answer.nodeName.toLowerCase() != 'dd')
    {
        answer = answer.nextSibling;
    }
    return answer;
}

function showAnswer(e)
{
    var target = findTarget(e);
    var answer = getAnswer(target);


    //if answer is displayed, close it
    if (answer.style.display == 'block')
    {
        answer.style.display = 'none';
    }
    //if answer is hidden or null, display it
    else if (answer.style.display == 'none' || answer.style.display == '')
    {
        answer.style.display = 'block';
    }
    /*close currently open answer
    if (openAnswer && openAnswer!=answer) {
    openAnswer.style.display = "none";
    }
    openAnswer = answer;
    */
}



addEvent(window, 'load', init, false);   
