var rptTop = null;

if ( (!is.op6) && (!is.ns4) && (!is.kq) )
{
    document.write( "<style type='text/css'>" );
    document.write( "#ChartLegendLayer          {height: 245px; width: 100%; overflow: auto;}" );
    document.write( "#ChartLegendLayerGroupless {height: 245px; overflow: auto;}" );
    document.write( "#ChartLegendLayerMulti     {height: 245px; overflow: auto;}" );
    document.write( "</style>" );
}

if ( (is.ns4) || (is.blazer) )
{
    document.write( "<style type='text/css'>" );
    document.write( ".chartNav{ display: none; }" );
    if ( self.sMultiLineDataSet == self.sCurrentGraphDataSet )
    {
        document.write( "#ChartLegendLayer          {position: absolute; visibility: hidden;}" );
        document.write( "#ChartLegendLayerGroupless {position: absolute; visibility: hidden;}" );
        document.write( "#ChartLegendLayerMulti     {position: relative; visibility: visible;}" );
    }
    else if ( self.bGroupedLegend && ((self.sCurrentGraphType == 'pie') || (self.sCurrentGraphType == 'pie3d')) )
    {
        document.write( "#ChartLegendLayer          {position: absolute; visibility: hidden;}" );
        document.write( "#ChartLegendLayerGroupless {position: relative; visibility: visible;}" );
        document.write( "#ChartLegendLayerMulti     {position: absolute; visibility: hidden;}" );
    }
    document.write( "</style>" );
    document.write( "<div id='DataSetMenuLayer'><div id='ChartTypeLayer'></div></div>" );
}

function DisplayCorrectLegend()
{
    if ( sCurrentGraphDataSet == self.sMultiLineDataSet )
    {
        DynChartTypeLayer.hide();
        DynChartLegendLayer.hide();
        if ( self.bGroupedLegend )
            DynChartLegendLayerGroupless.hide();
        DynChartLegendLayerMulti.show();
    }
    else if ( self.bGroupedLegend && (sCurrentGraphType == 'pie') || (sCurrentGraphType == 'pie3d') )
    {
        DynChartTypeLayer.show();
        if ( self.sMultiLineDataSet )
            DynChartLegendLayerMulti.hide();
        if ( self.bGroupedLegend )
        {
            DynChartLegendLayer.hide();
            DynChartLegendLayerGroupless.show();
        }
        else
            DynChartLegendLayer.show();
    }
    else
    {
        DynChartTypeLayer.show();
        if ( self.sMultiLineDataSet )
            DynChartLegendLayerMulti.hide();
        if ( self.bGroupedLegend )
            DynChartLegendLayerGroupless.hide();
        DynChartLegendLayer.show();
    }
}

function ChangeChart( sGraphType )
{
    if ( self.ChartImage )
    {
        if ( self.ChartImage.Change )
        {
            sCurrentGraphType = sGraphType;

            DisplayCorrectLegend();

            if ( rptTop )
            {
                if ( (sCurrentGraphType == sDefaultGraphType) && (sCurrentGraphDataSet == sDefaultGraphDataSet) )
                    sCurRptGraph = "";
                else
                    sCurRptGraph = "&grtype=" + sCurrentGraphType + "&dataset=" + sCurrentGraphDataSet;
                rptTop.sCurRptGraph = sCurRptGraph;
            }
            self.ChartImage.Change( sGraphCGI + '?base=graph&dir=' + sGraphDir + '&file=' + sGraphFile + '&type=' + sReportType + '&grtype=' + sGraphType + '&dataset=' + sCurrentGraphDataSet );
        }
    }
}

function ChangeDataSet( sSet )
{
    sCurrentGraphDataSet = sSet;

    if ( self.sMultiLineDataSet )
    {
        if ( sCurrentGraphDataSet == self.sMultiLineDataSet )
        {
            ChangeChart( 'line' );
        }
        else
        {
            ChangeChart( sCurrentGraphType );
        }
    }
    else
        ChangeChart( sCurrentGraphType );

    if ( document.getElementById )
    {
        var linkDataSet, linkElement;

        linkDataSet = document.getElementById( 'DataSetText' );
        linkElement = document.getElementById( 'ChartDataSetElement' + sCurrentGraphDataSet );
        if ( (linkDataSet) && (linkElement) )
            linkDataSet.innerHTML = linkElement.innerHTML
    }
}

function init( bNoChart )
{
    if ( parent.rptTop )
        rptTop = parent.rptTop;
    else if ( (parent.parent) && (parent.parent.rptTop) )
        rptTop = parent.parent.rptTop;

    if ( !bNoChart )
    {
        DynDataSetMenuLayer     = new DynLayer( "DataSetMenuLayer" );
        DynChartImageLayer      = new DynLayer( "ChartImageLayer" );
        DynChartTypeLayer       = new DynLayer( "ChartTypeLayer" );
        DynChartLegendLayer     = new DynLayer( "ChartLegendLayer" );

        if ( document.getElementById )
        {
            var linkDataSet, linkCoords;

            linkDataSet = document.getElementById( 'DataSetText' );
            if ( linkDataSet )
            {
                linkCoords = GetPageCoords( linkDataSet );
                DynDataSetMenuLayer.moveTo( linkCoords.left, linkCoords.top );
            }

            if ( self.sMultiLineDataSet )
            {
                var legendMain, legendMulti, legendAlt, coordsMain;

                legendAlt = document.getElementById( 'ChartLegendLayerAlt' );
                if ( legendAlt )
                    legendAlt.id = 'ChartLegendLayerMulti';

                DynChartLegendLayerMulti = new DynLayer( "ChartLegendLayerMulti" );

                legendMain = document.getElementById( 'ChartLegendLayer' );
                legendMulti = document.getElementById( 'ChartLegendLayerMulti' );

                if ( legendMain && legendMulti )
                {
                    legendMulti.style.width = legendMain.offsetWidth;
                    coordsMain = GetPageCoords( legendMain );
                    DynChartLegendLayerMulti.moveTo( coordsMain.left, coordsMain.top );
                }
            }

            if ( self.bGroupedLegend )
            {
                var legendMain, legendGroupless, legendAlt, coordsMain;

                legendAlt = document.getElementById( 'ChartLegendLayerAlt' );
                if ( legendAlt )
                    legendAlt.id = 'ChartLegendLayerGroupless';

                DynChartLegendLayerGroupless = new DynLayer( "ChartLegendLayerGroupless" );

                legendMain = document.getElementById( 'ChartLegendLayer' );
                legendGroupless = document.getElementById( 'ChartLegendLayerGroupless' );

                if ( legendMain && legendGroupless )
                {
                    legendGroupless.style.width = legendMain.offsetWidth;
                    coordsMain = GetPageCoords( legendMain );
                    DynChartLegendLayerGroupless.moveTo( coordsMain.left, coordsMain.top );
                }
            }

            DisplayCorrectLegend();
        }
    }

    if ( rptTop )
    {
        FixTopLinks();
        if ( self.bArchived && rptTop.ShowArchiveTab )
            rptTop.ShowArchiveTab();
    }
}

function showDataSetMenu()
{
    DynChartImageLayer.hide();
    DynChartTypeLayer.hide();
    DynChartLegendLayer.hide();
    if ( self.sMultiLineDataSet )
        DynChartLegendLayerMulti.hide();
    if ( self.bGroupedLegend )
        DynChartLegendLayerGroupless.hide();
    DynDataSetMenuLayer.show();
}

function hideDataSetMenu()
{
    DynDataSetMenuLayer.hide();
    DynChartImageLayer.show();

    DisplayCorrectLegend();
}

function GetPageCoords( ThisElement )
{
    var ElementCoords = { left: 0, top: 0 };

    do
    {
        ElementCoords.left += ThisElement.offsetLeft;
        ElementCoords.top += ThisElement.offsetTop;
    }
    while( (ThisElement = ThisElement.offsetParent) );

    return ElementCoords;
}

function ShowLoadingWindow()
{
    if ( (rptTop) && (rptTop.bLoaded) && (rptTop.ShowLoadingWindow) )
        rptTop.ShowLoadingWindow();
}

function FollowNavLink( objLink, bDataSet )
{
    var sLink = objLink.href;

    ShowLoadingWindow();

    if ( self.sCurrentGraphType )
        sLink = sLink + "&grtype=" + sCurrentGraphType;
    if ( bDataSet && self.sCurrentGraphDataSet )
        sLink = sLink + "&dataset=" + sCurrentGraphDataSet;

    self.location = sLink;

    return false;
}

function FixTopLinks()
{
    if ( !rptTop.bLoaded )
    {
        setTimeout( 'FixTopLinks()', 100 );
    }
    else
    {
        rptTop.sCurRptStatic = sCurRptStatic;
        rptTop.sCurRptDynamic = sCurRptDynamic;
        rptTop.sCurRptGraph = sCurRptGraph;
        rptTop.sExportCSV = sExportCSV;
        rptTop.sExportAllCSV = sExportAllCSV;
        rptTop.sExportHTML = sExportHTML;
        rptTop.sExportAllHTML = sExportAllHTML;
        rptTop.sExportRTF = sExportRTF;
        rptTop.sExportAllRTF = sExportAllRTF;
        rptTop.sFilter = sFilter;
        rptTop.sEmail = sEmail;
        rptTop.sHelp = sHelp;
        if ( self.bHomepage && rptTop.ShowProfilesTab )
            rptTop.ShowProfilesTab();
    }
}

