﻿
var outage = new Object();


outage.outages;
outage.areas;
outage.points;
outage.idimage = 'outageimage';
outage.idpopup = 'outagepopup';



outage.popup = function (basehtml, oid)
{
    var text = '';

    if (!oid)
    {
       	uti.popup(outage.idpopup); // hide
        return;
    }
        
    var point = outage.points[oid];

    if (!point.records)
        return;

    var rec = point.records[point.key];

    text += basehtml;
    text = text.replace(/XPNAME/, rec.name);
    text = text.replace(/XPSTART/, rec.start);
    text = text.replace(/XPESTIMATE/, user.getEstimateText(rec.estimate));
    text = text.replace(/XPREASON/, rec.reason);
    text = text.replace(/XPCUSTOMERS/, point.custcount);
    text = text.replace(/XPFAULTS/, rec.faults);
    text = text.replace(/XPPLANS/, rec.plans);

    uti.popup(outage.idpopup, outage.idimage, text);
}


outage.addPoint = function (oid, count, key, records)
{
    if (!outage.points)
        outage.points = new Array();

    var o = new Object;
	
    o.oid = oid;
    o.custcount = count;
    o.key = key;
    o.records = records;

    outage.points[oid] = o;
}


outage.createRecord = function (oid, name, start, estimate, reason, faults, plans)
{
    var o = new Object;
	
    o.oid = oid;
    o.name = name;
    o.start = start;
    o.estimate = estimate;
    o.reason = reason;
    o.faults = faults;
    o.plans = plans;

    return o;
}


outage.add_outage = function (oid, isfault, start, estimate, reason)
{
    if (!outage.outages)
        outage.outages = new Array();

    var name;

    if (isfault)
        name = user.faulttext;
    else
        name = user.plantext;

    outage.outages[oid] = outage.createRecord(oid, name, start, estimate, reason, 0, 0);
}


outage.add_area = function (oid, name, faults, plans, count)
{
    if (!outage.areas)
        outage.areas = new Array();

    outage.areas[oid] = outage.createRecord(oid, name, '', '', '', faults, plans);
    outage.addPoint(oid, count, oid, outage.areas);
}


outage.add_ds = function (oid, outageid, count)
{
    outage.addPoint(oid, count, outageid, outage.outages);
}


outage.init = function ()
{
    var ele = uti.getElement(outage.idimage);

    if (ele)
        ele.onclick = uti.onMouseClick;

    var areas = document.getElementsByTagName('area');

    for (var i = 0; areas && i < areas.length; i++) {
        areas[i].onclick = uti.onMouseClick;
    }

    uti.popupInit(outage.idpopup, outage.idimage);
    window.document.onmousemove = uti.popupMove;
    user.doLocal();
}


