﻿

function RegisterDdls() 
{ 
//    if(typeof(ddlProbability) == "undefined" || typeof(ddlSeverity) == "undefined" || typeof(ddlPriority) == "undefined")
//    {   
        ddls = document.getElementsByTagName('select'); 
        for(i=0;i<ddls.length;i++)
        {
            if(ddls[i].id.indexOf('ddlProbabilities')>0)
            {
                ddlProbability = ddls[i];
            }
            if(ddls[i].id.indexOf('ddlSeverities')>0)
            {
                ddlSeverity = ddls[i];
            }
            if(ddls[i].id.indexOf('ddlPriorities')>0)
            {
                ddlPriority = ddls[i];
            }
        }
//    }       
}
function showRiskLevelText(riskType)
{
    // list of code to put inside a div for the 5x5
    var acceptable = 'Acceptable (without review)<br /><img src="/Images/1x1.GIF" height="1" width="35" />No further action required';
    var review = 'Acceptable With Review<br /><img src="/Images/1x1.GIF" height="1" width="35" />Tolerable but must be reviewed by <br /><img src="/Images/1x1.GIF" height="1" width="35" />relevant Accountable Authority';
    var undesirable = 'Undesirable<br /><img src="/Images/1x1.GIF" height="1" width="35" />Should only be tolerated if risk reduction is impractical';
    var unacceptable = 'Unacceptable<br /><img src="/Images/1x1.GIF" height="1" width="35" />Intolerable - risk must be reduced';
    
    
    //Risk matrix hardcoded for now
    //Type 3 (5x5)
    //Type 2 (4x4)
    //Type 1 (3x3)
    
    var riskDivId = "riskLevelDiv" + riskMatrixType;
    var riskLevelDiv = document.getElementById(riskDivId);
    
    if (riskType && riskMatrixType && riskMatrixType == "5")
    {
        if (riskType && riskType == "Acceptable")
           riskLevelDiv.innerHTML = acceptable;
        else if (riskType && riskType == "Review")
           riskLevelDiv.innerHTML = review;
        else if (riskType && riskType == "Undesirable")
           riskLevelDiv.innerHTML = undesirable;
        else if (riskType && riskType == "Unacceptable")
           riskLevelDiv.innerHTML = unacceptable;
    }
    else if (riskType && riskMatrixType && riskMatrixType == "4")
    {
        if (riskType && riskType == "Acceptable")
           riskLevelDiv.innerHTML = acceptable;
        else if (riskType && riskType == "Review")
           riskLevelDiv.innerHTML = review;
        else if (riskType && riskType == "Undesirable")
           riskLevelDiv.innerHTML = review;
        else if (riskType && riskType == "High")
            riskLevelDiv.innerHTML = undesirable;
        else if (riskType && riskType == "Unacceptable")
           riskLevelDiv.innerHTML = unacceptable;
    }
    else if (riskType && riskMatrixType && riskMatrixType == "3")
    {
        if (riskType && riskType == "Acceptable")
           riskLevelDiv.innerHTML = acceptable;
        else if (riskType && riskType == "Undesirable")
           riskLevelDiv.innerHTML = review;
        else if (riskType && riskType == "High")
           riskLevelDiv.innerHTML = undesirable;
        else if (riskType && riskType == "Unacceptable")
           riskLevelDiv.innerHTML = unacceptable;
    }
       // riskLevelDiv.innerHTML = "";
}
function showProbabilitySeverity(prob, severity)
{    
    
    var probValue = prob; // ddlProbability.selectedIndex;
    var severValue = severity; // ddlSeverity.selectedIndex;
    
    var probSevdivId = "probabilitySeverityDiv" + riskMatrixType;

    var probSeverityDiv = document.getElementById(probSevdivId);
    if (probSeverityDiv)
        probSeverityDiv.innerHTML = "";
    
    if (probValue)
        probSeverityDiv.innerHTML = getProbabilityText(probValue, severValue) + getSeverityText(severValue, probValue);
}

function getSeverityText(severValue, probValue)
{
    
    var negligible = '<span class="narrativeHead">Severity</span><span class="sNarrativeSub1">Mission</span><span class="sNarrativeSub2">Minor degradation, mission continues</span><span class="sNarrativeSub1">Personnel</span><span class="sNarrativeSub2">Less than minor injury (1st aid)</span><span class="sNarrativeSub1">Material</span><span class="sNarrativeSub2">Defect rectification, no effect on ops 1st line resources</span>';
    var marginal = '<span class="narrativeHead">Severity</span><span class="sNarrativeSub1">Mission</span><span class="sNarrativeSub2">Certain mission element failures. Mission continues with minor degradation</span><span class="sNarrativeSub1">Personnel</span><span class="sNarrativeSub2">Single minor injury or temporary disability. Emergency medical treatment</span><span class="sNarrativeSub1">Material</span><span class="sNarrativeSub2">Minor damage. Temporary loss - 1st & 2nd line resources</span>';
    var significant = '<span class="narrativeHead">Severity</span><span class="sNarrativeSub1">Mission</span><span class="sNarrativeSub2">Single significant mission element failure. Maybe deemed unsuitable to continue</span><span class="sNarrativeSub1">Personnel</span><span class="sNarrativeSub2">Single severe injury or permanent disability. Multiple minor injuries or temporary disabilities</span><span class="sNarrativeSub1">Material</span><span class="sNarrativeSub2">Major damage, specialist repair resources required. 2nd & 3rd line resources</span>';
    var critical = '<span class="narrativeHead">Severity</span><span class="sNarrativeSub1">Mission</span><span class="sNarrativeSub2">Multiple significant mission element failures. Unsuitable to continue</span><span class="sNarrativeSub1">Personnel</span><span class="sNarrativeSub2">Single death. Multiple severe injuries or permanent disabilities</span><span class="sNarrativeSub1">Material</span><span class="sNarrativeSub2">Severe damage or First Level system damage. Extended loss, 2nd/3rd line resources</span>';
    var catastrophic = '<span class="narrativeHead">Severity</span><span class="sNarrativeSub1">Mission</span><span class="sNarrativeSub2">Total mission failure</span><span class="sNarrativeSub1">Personnel</span><span class="sNarrativeSub2">Multiple deaths</span><span class="sNarrativeSub1">Material</span><span class="sNarrativeSub2">Total loss</span>';

    if (riskMatrixType && riskMatrixType == "5")
    {
        if (severValue && severValue == 1)
            return negligible;
        else if (severValue && severValue == 2)
            return marginal;
        else if (severValue && severValue == 3)
            return significant;
        else if (severValue && severValue == 4)
            return critical;
        else if (severValue && severValue == 5)
            return catastrophic;
     }
     else if (riskMatrixType && riskMatrixType == "4")
    {
        if (severValue && severValue == 1)
            return negligible;
        else if (severValue && severValue == 2)
            return marginal;
        else if (severValue && severValue == 3)
            return significant;
        else if (severValue && severValue == 4)
            return critical;
        else if (severValue && severValue == 4 && probValue && probValue == 4)
            return catastrophic;
    }
    if (riskMatrixType && riskMatrixType == "3")
    {
        if (severValue && severValue == 1)
            return negligible;
       else if (severValue && severValue == 2)
            return significant;
       else if (severValue && severValue == 2 && probValue && probValue == 3)
            return critical;
       else if (severValue && severValue == 3  && probValue && probValue == 3)
            return catastrophic;
       else if (severValue && severValue == 3 && probValue && probValue == 2)
            return critical;
       else if (severValue && severValue == 3)
            return significant;
    }
    //else return '';
}
function getProbabilityText(probValue, severValue)
{
   
    var improbable = '<span class="narrativeHead">Probability</span><span class="pNarrativeSub1">Very unlikely to occur, if at all</span>';
    var remote = '<span class="narrativeHead">Probability</span><span class="pNarrativeSub1">Unlikely, but might occur</span>';
    var occasional = '<span class="narrativeHead">Probability</span><span class="pNarrativeSub1">Likely to occur sometime</span>';
    var probable = '<span class="narrativeHead">Probability</span><span class="pNarrativeSub1">Will occur several times</span>';
    var frequent = '<span class="narrativeHead">Probability</span><span class="pNarrativeSub1">Likely to occur frequently</span>';
 
    if (probValue && probValue == 1)
        return improbable;
    else if (probValue && probValue == 2)
        return remote;
    else if (probValue && probValue == 3)
        return occasional;
    else if (probValue && probValue == 4)
        return probable;
    else if (probValue && probValue == 5)
        return frequent;
    else return '';
}
function setDropDownListValues(row, column, priority, rmType)
{


 riskMatrixType = rmType;   
 //Initialize dropdowns ... if priority == -1 - don't change DDLs, only show explanations
 

     if(priority > -1)
     {
         RegisterDdls();
          
         if (ddlProbability && row)
            ddlProbability.options[row].selected = true;

         if (ddlSeverity && column)
            ddlSeverity.options[column].selected = true;
         
         if (ddlPriority)
            ddlPriority.options[priority].selected = true;
     }
     else
     {
        showProbabilitySeverity(row, column);
     }
 }
