﻿//  Chart Client Manager
// (c) 2008 MRI
// chart.js
//
// Public Interface:	

var sChartColColor = "";
var sChartColBackground = "";
var oDraw = null;
var iPlotImage = 0;
var sTimingImageFile = "";
var sTimingImageFileOver = "";
var oMatrix = document.createElement('div');
var oMatrixAnchor = document.getElementById("MATRIXANCHOR");
var bShowTimingDetail = false;
var iTimingDetailIndex = 0;
var iTimingDetailSize = 0;
var oTimingDetailControl = 0;
var sValueChartHTML = "";
var sPostHTML = "";
var oSynopsisParent = null;
var bClosing = false;

oMatrix.id                    = 'MATRIXDIV'
oMatrix.name                  = 'MATRIXDIV';
oMatrix.style.x               = 0;
oMatrix.style.y               = 0;
oMatrix.style.position        = 'absolute';
oMatrix.style.visibility      = 'hidden';	
oMatrix.style.display         = 'none';
oMatrix.style.backgroundColor = "#FFFFFF";

var oSynopsisDiv = document.createElement('div');
oSynopsisDiv.id = 'SYNOPSISDIV';
oSynopsisDiv.name = 'SYNOPSISDIV';
oSynopsisDiv.style.x = 0;
oSynopsisDiv.style.y = 0;
oSynopsisDiv.style.position = 'absolute';
oSynopsisDiv.style.visibility = 'visible';
oSynopsisDiv.style.display = 'block';

function AddMixtureData(iReleaseID) {
    var oData = new CreateMixtureChart(iReleaseID);
    aMixtureChartData[aMixtureChartData.length] = oData;
    return aMixtureChartData.length - 1;
}

function CreateMixtureChart(iReleaseID) {
    this.iReleaseID = iReleaseID;
    this.aMixtureData = new Array();
    this.oDraw = null;
}

function AddTimingData(iReleaseID) {
    var oData = new CreateTimingChart(iReleaseID);
    aTimingChartData[aTimingChartData.length] = oData;
    return aTimingChartData.length - 1;
}

function CreateTimingChart(iReleaseID) {
    this.iReleaseID = iReleaseID;
    this.aTimingData = new Array();
    this.aTimingDateData = new Array();
    this.aTimingDateCoords = new Array();
    this.iTimingWindow = 0;
    this.iTimingLimited = false;
    this.iTimingBars = 15;
    this.iTimingBarWidth = 0;
    this.iTimingBarFudge = 0;
    this.iTimingAvgDaysX = 0;
    this.iTimingReleaseX = 0;
    this.iTimingSysAvgX = 0;
    this.sTimingReleaseDate = '';
    this.iTimingHeight = 0;
    this.iTimingWidth = 0;
    this.iTimingDir = 0;
    this.oDraw = null;
}

function AddPostImageData(iReleaseID) {
    var oData = new CreatePostImage(iReleaseID);
    aPostImageData[aPostImageData.length] = oData;
    return aPostImageData.length - 1;
}

function CreatePostImage(iReleaseID) {
    this.iReleaseID = iReleaseID;
    this.aReviewImageData = new Array();
}

function CreateGraphData(iX,iY,iSize,iColor,sTitle,iReleaseID) {
    this.iReleaseID = iReleaseID;
    this.iX = iX;
    this.iY = iY;
    this.iSize = iSize;
    this.iColor = iColor;
    this.sTitle = sTitle;
}

function CreateTimingData(iX, iHeight, sLabel, iReleaseID) {
    this.iReleaseID = iReleaseID;
    this.iX = iX;
    this.iHeight = iHeight;
    this.sLabel = sLabel;
    this.iHeight = iHeight;
    this.iWidth = iWidth;
    this.oDraw = null;
}

function CreateTimingDateData(iX, iY, sLabel) {
    this.iX = iX;
    this.iY = iY;
    this.sLabel = sLabel;
}

function CreatePostImageData(sInt,sFrac,sReviews,sColor,sFile,sReleaseID,iTimingDir,sSynopsis,sDirector,sStudio,sRating,sGenre,sDate) {
    this.sInt = sInt;
    this.sFrac = sFrac;
    this.sReviews = sReviews;
    this.sColor = sColor;
    this.sFile = sFile;
    this.sReleaseID = sReleaseID;
    this.iTimingDir = iTimingDir;
    this.sSynopsis = ReplaceAll(sSynopsis,'"',"'");
    this.sDirector = ReplaceAll(sDirector,'"',"'");
    this.sStudio = ReplaceAll(sStudio,'"',"'");
    this.sRating = ReplaceAll(sRating,'"',"'");
    this.sGenre = ReplaceAll(sGenre,'"',"'");
    this.sDate = ReplaceAll(sDate, '"', "'");
}

function PlotMixtureData(sCanvas,iIndex) {
    if ((iIndex < 0) || (iIndex >= aMixtureChartData.length)) return -1;

    var oChart = aMixtureChartData[iIndex];
    
    if (oChart == null) return -2;

    oChart.oDraw = new jsGraphics(sCanvas);
    
    var i = 0;
    var oData = null;
    var iSize = 0;
    var sFile = "";
    var iGreen = 192;
    var iBlue = 0;
    var iRed = 0;
    var iColor = 0;
    var iSkip = 64/(oChart.iHeight/3);
    var iSkip2 = 256/(oChart.iHeight/3);
   
    if (oChart.aMixtureData.length > 0) {
        oChart.oDraw.setStroke(1);
//        oDraw.setColor("#FFFFFF");
//        oDraw.drawLine(0,-1,iMixtureWidth,-1);
//        oDraw.drawLine(iMixtureWidth,0,iMixtureWidth,iMixtureHeight-1);
//        
//        for (i=0;i<iMixtureHeight/3-1;i++) {
//            iColor = (Math.round(iRed) * 65536) + (Math.round(iGreen) * 256) + Math.round(iBlue);
//            oDraw.setColor(ColorToHex(iColor));
//            oDraw.drawLine(0,i,iMixtureWidth-1,i);
//            iGreen = iGreen + iSkip;
//            iRed = iRed + iSkip2;
//            iBlue = iBlue + iSkip2;
//        }
//        
//        iRed = 192;
//        iBlue = 0;
//        iGreen = 0;
//        
//        for (i=0;i<iMixtureHeight/3-1;i++) {
//            iColor = (Math.round(iBlue) * 65536) + (Math.round(iGreen) * 256) + Math.round(iRed);
//            oDraw.setColor(ColorToHex(iColor));
//            oDraw.drawLine(0,iMixtureHeight-i,iMixtureWidth-1,iMixtureHeight-i);
//            iGreen = iGreen + iSkip2;
//            iRed = iRed + iSkip;
//            iBlue = iBlue + iSkip2;
//        }

        
//        oDraw.drawLine(0,iMixtureHeight/2,iMixtureWidth,iMixtureHeight/2);

        for (i=0;i<oChart.aMixtureData.length;i++) {
            oData = oChart.aMixtureData[i];
//            iSize = 16 + ((oData.iSize -1) * 3);
//            sFile = 'Images/MixturePlot/plot' + (oData.iColor) + (oData.iSize) + '.gif';
            sFile = '/Images/MixturePlot/plot' + oData.iColor + '.gif';
            
            iSize = siif(oData.iSize == 1,"16","32")
            
            oChart.oDraw.drawImage(sFile,oData.iX,oData.iY,iSize,iSize,
                'onmouseover="onMixtureMouseOver(this,' + oData.iSize + ')" ' +
                'onmouseout="onMixtureMouseOut(this,' + oData.iColor + ',' + oData.iSize + ')" ' +
                'onclick="onMixtureClick(this)"',
                oData.sTitle);
        }

        oChart.oDraw.paint();
    }
}

function PlotTimingData(sCanvas, iIndex) {
    if ((iIndex < 0) || (iIndex >= aTimingChartData.length)) return -1;

    var oChart = aTimingChartData[iIndex];
    
    if (oChart == null) return -2;

    oChart.oDraw = new jsGraphics(sCanvas);

    var i = 0;
    var oData = null;
    var oWork = null;
    var iSize = 0;
    var sFile = "";
    var iAvg = 0;
    var iSys = 0;
    var sCanvasStr = "'" + sCanvas + "'";
    var c = 0;

    if (bIsFirefox) c = -1;
   
    if (oChart.aTimingData.length > 0) {
        oChart.oDraw.setStroke(3);
        oChart.oDraw.setColor("#FFFFFF");
        oChart.oDraw.fillRect(oChart.iTimingReleaseX,0,oChart.iTimingBarWidth,oChart.iTimingHeight-1);

        oChart.oDraw.setStroke(1);
        oChart.oDraw.setColor("#000000");
        oChart.oDraw.drawLine(0,oChart.iTimingHeight/2+c,oChart.iTimingWidth,oChart.iTimingHeight/2+c);

        iAvg = oChart.iTimingAvgDaysX - 30;
        iSys = oChart.iTimingSysAvgX - 70;
        
        if (iAvg > 510) iAvg = 510;
        if (iAvg < 0) iAvg = 5;

        if (iSys > 370) iSys = 370;
        if (iSys < 0) iSys = 5;

        oChart.oDraw.setColor("#770000");
        oChart.oDraw.setFont("verdana", "9pt", Font.FONT_BOLD);

        if ((oChart.iTimingAvgDaysX > 0) && (oChart.iTimingAvgDaysX < oChart.iTimingWidth)) {
            oChart.oDraw.drawStringRect("This Film", iAvg, 1, 60, "center");
            oChart.oDraw.drawLine(oChart.iTimingAvgDaysX, 16, oChart.iTimingAvgDaysX, oChart.iTimingHeight - 50);
        }

        oChart.oDraw.setColor("#770000");
        oChart.oDraw.drawStringRect("Average All Films", iSys, oChart.iTimingHeight - 16, 150, "center");
        oChart.oDraw.drawLine(oChart.iTimingSysAvgX + 9, 50, oChart.iTimingSysAvgX + 9, oChart.iTimingHeight - 18);
        
        for (i=0;i<oChart.aTimingData.length;i++) {
            oData = oChart.aTimingData[i];
            oWork = oChart.aTimingDateCoords[i];
            
            if (oData != null) {
                iSize = oData.iSize;

                if (iSize < 6) sFile = '/Images/MixturePlot/timingbarsmall.gif';
                else sFile = '/Images/MixturePlot/timingbar.gif';

                if (oWork != null) {
                    if (oWork.sLabel == oChart.sTimingReleaseDate) {
                        if (iSize < 6) sFile = '/Images/MixturePlot/timingbaropensmall.gif';
                        else sFile = '/Images/MixturePlot/timingbaropen.gif';
                    }
                }

                //                    'onmouseover="onTimingMouseOver(this,' + iSize + ',' + iIndex + ',' + i + ')" ' +
                
                oChart.oDraw.drawImage(sFile,oData.iX,oData.iY,oChart.iTimingBarWidth,iSize,
                    'onmouseout="onTimingMouseOut(this,' + iSize + ',' + iIndex + ',' + sCanvasStr + ')" ' +
                    'onclick="onTimingMouseOver(this,' + iSize + ',' + iIndex + ',' + i + ')"',
                    "Click For Reviews","Click for Reviews");
            }
        }

        for (i=0; i<oChart.aTimingDateCoords.length;i++) {
            oData = oChart.aTimingDateCoords[i];
            oWork = oChart.aTimingData[i];
            
            if (oData != null) {
                if (oData.sLabel == oChart.sTimingReleaseDate)  {
                    oChart.oDraw.setFont("verdana","7pt",Font.BOLD);
                    oChart.oDraw.setColor("#000000");
                    oChart.oDraw.drawStringRect(oData.sLabel, oData.iX, oData.iY, oChart.iTimingBarWidth, "center");

                    if (oWork != null) {
                        oChart.oDraw.drawStringRect("OPEN", oData.iX, oData.iY - oWork.iSize - 16, oChart.iTimingBarWidth, "center");
                    } else {
                        oChart.oDraw.drawStringRect("OPEN", oData.iX, oData.iY - 18, oChart.iTimingBarWidth, "center");
                    }

                } else if (i == 0) {
                    oChart.oDraw.setFont("verdana","7pt",Font.BOLD);  
                    oChart.oDraw.setColor("#000000");
                    oChart.oDraw.drawStringRect(oData.sLabel,oData.iX,oData.iY,oChart.iTimingBarWidth,"center");
                } else {
                    oChart.oDraw.setFont("verdana","7pt",Font.BOLD);  
                    oChart.oDraw.setColor("#000000");
                    oChart.oDraw.drawStringRect(oData.sLabel,oData.iX,oData.iY,oChart.iTimingBarWidth,"center");
                }
            }
        }

        oChart.oDraw.paint();
    }
}

function onMixtureMouseOver(oControl,iSize) {
    oControl.src = '/Images/MixturePlot/plot' + siif(iSize == 1,"small","large") + 'over.gif';
}

function onMixtureMouseOut(oControl,iColor,iSize) {
    oControl.src = '/Images/MixturePlot/plot' + iColor + '.gif';
}

function onTimingMouseOver(oControl, iSize, iChartIndex, iTimingIndex) {
    if (bShowTimingDetail) return;
    
    //if (iSize < 6) oControl.src = '/Images/MixturePlot/timingbarsmallover.gif';
    //else oControl.src = '/Images/MixturePlot/timingbarover.gif';

    var oChart = aTimingChartData[iChartIndex];
    var oData = oChart.aTimingData[iTimingIndex];
    var aList = DecodeDelimittedList(oData.sTitle, "~");
    var oValueCanvas = document.getElementById("POSTCANVAS4");
    var oPostDiv = document.getElementById("POSTDIV6");
    var aData;
    var i;
    var sClose = "<span onclick='onTimingClose()'>" +
                 "<img src='/Images/calclose.gif' height='16' width='16' alt='Close' title='Close' hspace='1' vspace='1'>" +
                 "</span>";

    var sTable = '<table border="0" cellspacing="0" cellpadding="2" width="100%" bgcolor="#FFFFFF">';  
        
    if (aList.length == 0) return;

    var s = '<div style="position:relative;z-index:99;background-color:#FFFFFF;border-style:solid;border-width:3px;' +
            'border-color:#B0B0B0;width:275px">' + sTable;

    s = s + "<tr><td align='center'><img src='/Images/mri_logo_small.png'></td>";
    s = s + "<td align='center' valgn='top'>" + sClose + "</td></tr></table>" + sTable;

    if (oValueCanvas != null) {
        sValueChartHTML = oValueCanvas.innerHTML;
        oValueCanvas.innerHTML = "";
    }

    if (oPostDiv != null) {
        sPostHTML = oPostDiv.innerHTML;
        oPostDiv.innerHTML = "";
    }

    bShowTimingDetail = true;
    iTimingDetailIndex = iChartIndex;
    iTimingDetailSize = iSize;
    oTimingDetailControl = oControl;
    
    for (i=0;i<aList.length-1;i++) {
        aData = DecodeDelimittedList(aList[i],";");
        
        s = s + "<tr>";
        
        if (aData.length == 3) {
            s = s + "<td class='ColumnDataDialog' align='left' valign='top' >" + aData[0] + "</td>" +
                    "<td class='ColumnDataDialog' align='left' valign='top' >" + aData[2] + "</td>" +
                    "<td class='ColumnDataDialog' align='left' valign='top' nowrap='nowrap' >" + aData[1] + "</td>";
        } else {
        s = s + "<td class='ColumnDataDialog' align='left'  valign='top'>" + aData[1] + "</td>" +
                    "<td colspan='2' class='ColumnDataDialog' align='left' valign='top' nowrap='nowrap' >" + aData[0] + "</td>" 
        }

        s = s + "</tr>";
    }
    
    s = s + "</table></div>";
    oChart.oDraw.drawStringRect(s,oData.iX+38,oData.iY,285,"left");
    oChart.oDraw.paint();
}

function onTimingMouseOut(oControl,iSize,iIndex,sCanvas) {
//    if (iSize < 6) oControl.src = '/Images/MixturePlot/timingbarsmall.gif';
//    else oControl.src = '/Images/MixturePlot/timingbar.gif';

//    var oChart = aTimingChartData[iIndex];
//    oChart.oDraw.clear()
//    PlotTimingData(sCanvas,iIndex);
}

function onTimingClose() {
    var oValueCanvas = document.getElementById("POSTCANVAS4");
    var oPostDiv = document.getElementById("POSTDIV6");

    if (oValueCanvas != null) oValueCanvas.innerHTML = sValueChartHTML;
    if (oPostDiv != null) oPostDiv.innerHTML = sPostHTML;
   
    bShowTimingDetail = false;
    if (iTimingDetailSize < 6) oTimingDetailControl.src = '/Images/MixturePlot/timingbarsmall.gif';
    else oTimingDetailControl.src = '/Images/MixturePlot/timingbar.gif';

    var oChart = aTimingChartData[iTimingDetailIndex];
    oChart.oDraw.clear()
    PlotTimingData(oChart.oDraw.cnv.id, iTimingDetailIndex);
}

function DrawPostReviewImage(sCanvas,oObject,sImage) {
    var c = 0;
    var d = 0;
    var s = "";

    if (bIsIE6) c = -100;
    else if (!bIsIE) c = -8;
    else c = -4;

    if (bIsFirefox) d = -3;
    else if (bIsSafari) d = -5;

    if (oObject == null) return;
    
    var oCanvas = document.getElementById(sCanvas);
    
    if (oCanvas == null) oCanvas = document.getElementById("POSTCANVAS");
        
    var oImage = document.getElementById(sImage);
        
    if (oImage == null) oImage = document.getElementById("POSTIMAGE");    
    
    if ((oCanvas != null) && (oImage != null)) { 
        //oImage.src = "/Images/" + oObject.sFile + ".jpg";
        oDraw = new jsGraphics(oCanvas.id);
        oDraw.setColor(oObject.sColor);

        if (oObject.sFile == "ReviewList") {
            if (oObject.sInt == "1") oObject.sInt = "0";
        
            oDraw.setColor("#2E7A2E");
            oDraw.setFont("Times New Roman", "10pt", Font.BOLD);
            oDraw.drawStringRect("Positive<br>Reviews", 12 + c, 6, 65, "center");
            oDraw.drawLine(26 + c, 42, 60 + c, 42);
            oDraw.drawLine(26 + c, 91, 60 + c, 91);

            if (oObject.sInt == "nr") {
                oDraw.setFont("Times New Roman", "15pt", Font.BOLD);
                oDraw.drawStringRect("<i>NR</i>", 8 + c + d, 56, 55, "right");
            } else {
                oDraw.setFont("Times New Roman", "17pt", Font.BOLD);
                oDraw.drawStringRect(oObject.sInt + ".", -10 + c, 47, 55, "right");
                oDraw.setFont("Times New Roman", "12pt", Font.BOLD);
                oDraw.drawString(oObject.sFrac, 45 + c, 52, Font.BOLD);
                oDraw.setFont("Times New Roman", "18pt", Font.BOLD);
                oDraw.drawString("%", 55 + c, 47, Font.BOLD);
            }
            
            oDraw.setFont("Times New Roman", "10pt", Font.BOLD);
            oDraw.drawString("Positive", 21 + c, 71, Font.BOLD);

        } else {
            if (oObject.sFile != "ReviewValue") {
                if (oObject.sInt != "nr") {
                    if ((oObject.sFile == "PositiveReviews") && (oObject.sInt == "1")) oObject.sInt = "0";

                    if (oObject.sFile != "ReviewTiming") {
                        oDraw.setFont("Times New Roman", "17pt", Font.BOLD);
                        oDraw.drawStringRect(oObject.sInt + ".", -10 + c, 47, 55, "right");
                        oDraw.setFont("Times New Roman", "12pt", Font.BOLD);
                        oDraw.drawString(oObject.sFrac, 45 + c, 52, Font.BOLD);
                    }
                }

                if (oObject.sFile != "ReviewMixture") {
                    if (oObject.sFile == "ReviewTiming") {
                        if (oObject.sInt == "nr") {
                            oDraw.setFont("Times New Roman", "15pt", Font.BOLD);
                            oDraw.drawStringRect("<i>NR</i>", 8 + c + d, 56, 55, "right");
                        } else {
                            oDraw.setFont("Times New Roman", "16pt", Font.BOLD);
                            var iFrac = parseInt(oObject.sFrac);

                            if ((iFrac < 0) || (oObject.sFrac == "-0")) {
                                if (iFrac == -10) iFrac = 0;
                                else iFrac = -iFrac;
                                oDraw.drawString("D", 50 + c, 48, Font.BOLD);
                                oDraw.setFont("Times New Roman", "17pt", Font.BOLD);
                                oDraw.drawStringRect(oObject.sInt, -7 + c, 47, 55, "right");
                            } else {
                                oDraw.drawString("H", 56 + c, 48, Font.BOLD);
                                oDraw.drawString(oObject.sFrac, 45 + c, 48, Font.BOLD);
                                oDraw.setFont("Times New Roman", "17pt", Font.BOLD);
                                oDraw.drawStringRect(oObject.sInt + ".", -10 + c, 47, 55, "right");
                            }

                            oDraw.setFont("Times New Roman", "10pt", Font.BOLD);
                            if (oObject.iTimingDir > 0) oDraw.drawString("After", 29 + c, 69, Font.BOLD);
                            else oDraw.drawString("Before", 27 + c, 69, Font.BOLD);
                        }

                        oDraw.setFont("Times New Roman", "10pt", Font.BOLD);
                        oDraw.drawStringRect("Review<br>Timing", 19 + c, 6, 55, "center");
                        oDraw.drawLine(28 + c, 42, 62 + c, 42);
                        oDraw.drawLine(28 + c, 91, 62 + c, 91);
                    } else {
                        if (oObject.sFile == "ReviewCoverage") {
                            if (oObject.sInt == "nr") {
                                oDraw.setFont("Times New Roman", "15pt", Font.BOLD);
                                oDraw.drawStringRect("<i>NR</i>", 8 + c + d, 56, 55, "right");
                            } else {
                                oDraw.setFont("Times New Roman", "18pt", Font.BOLD);
                                oDraw.drawString("%", 55 + c, 47, Font.BOLD);
                                oDraw.setFont("Times New Roman", "10pt", Font.BOLD);
                                oDraw.drawString("Coverage", 19 + c, 68, Font.BOLD);
                            }

                            oDraw.setFont("Times New Roman", "10pt", Font.BOLD);
                            oDraw.drawStringRect("Review<br>Coverage", 19 + c, 6, 55, "center");
                            oDraw.drawLine(28 + c, 42, 62 + c, 42);
                            oDraw.drawLine(28 + c, 91, 62 + c, 91);
                        } else {
                            oDraw.setFont("Times New Roman", "10pt", Font.BOLD);
                            oDraw.drawStringRect("Positive<br>Reviews", 20 + c, 6, 51, "center");
                            oDraw.drawLine(28 + c, 42, 62 + c, 42);
                            oDraw.drawLine(28 + c, 91, 62 + c, 91);

                            if (oObject.sInt == "nr") {
                                oDraw.setFont("Times New Roman", "15pt", Font.BOLD);
                                oDraw.drawStringRect("<i>NR</i>", 8 + c + d, 56, 55, "right");
                            } else {
                                oDraw.drawString("Positive", 24 + c, 70, Font.BOLD);
                                oDraw.setFont("Times New Roman", "18pt", Font.BOLD);
                                oDraw.drawString("%", 55 + c, 47, Font.BOLD);
                            }
                        }
                    }
                } else {
                    if (oObject.sInt == "nr") {
                        oDraw.setFont("Times New Roman", "15pt", Font.BOLD);
                        oDraw.drawStringRect("<i>NR</i>", 8 + c + d, 56, 55, "right");
                    } else {
                        oDraw.drawString("pp", 55 + c, 50, Font.BOLD);
                        oDraw.setFont("Times New Roman", "10pt", Font.BOLD);
                        oDraw.drawString("Difference", 15 + c, 71, Font.BOLD);
                    }

                    oDraw.setFont("Times New Roman", "10pt", Font.BOLD);
                    oDraw.drawStringRect("Review<br>Mixture", 22 + c, 6, 50, "center");
                    oDraw.drawLine(28 + c, 41, 62 + c, 41);
                    oDraw.drawLine(28 + c, 91, 62 + c, 91);
                }
            } else {
                if (oObject.sInt == "nr") {
                    oDraw.setFont("Times New Roman", "15pt", Font.BOLD);
                    oDraw.drawStringRect("<i>NR</i>", 8 + c + d, 56, 55, "right");
                } else {

                    if (oObject.sFrac == "K") {
                        oDraw.setFont("Times New Roman", "17pt", Font.BOLD);
                        oDraw.drawStringRect("$" + oObject.sInt, 10 + c, 46, 52, "right");

                        oDraw.setFont("Times New Roman", "12pt", Font.BOLD);
                        oDraw.drawString(oObject.sFrac, 61 + c, 51, Font.BOLD);
                    } else {
                        oDraw.setFont("Times New Roman", "17pt", Font.BOLD);
                        oDraw.drawStringRect("$" + oObject.sInt, 15 + c, 48, 30, "right");

                        oDraw.setFont("Times New Roman", "12pt", Font.BOLD);
                        oDraw.drawString(oObject.sFrac + "M", 44 + c, 53, Font.BOLD);
                    }

                    oDraw.setFont("Times New Roman", "10pt", Font.BOLD);
                    oDraw.drawString("Value", 29 + c, 68, Font.BOLD);
                }
                oDraw.setFont("Times New Roman", "10pt", Font.BOLD);
                oDraw.drawStringRect("Review<br>Value", 19 + c, 5, 57, "center");
                oDraw.drawLine(28 + c, 41, 62 + c, 41);
                oDraw.drawLine(28 + c, 91, 62 + c, 91);
            }
        }

        if (parseInt(oObject.sReviews) == 1) {
            s = "";
            d = 4;
        }  else {
            s = "s";

            if (parseInt(oObject.sReviews) < 10) d = 1;
            else d = -2;
        }

        oDraw.setFont("Times New Roman", "9pt", Font.BOLD);
        oDraw.drawString("(" + oObject.sReviews + "&nbsp;Review" + s + ")", 14 + c + d, 96, Font.BOLD);
        
        oDraw.paint(); 
    }
}

pDrawPostImage = function (sCanvas) {
    var sFile = GetApp();
    var oCanvas = document.getElementById(sCanvas);
    var oObject = null;
    var i = 0;
    var sFile = GetApp();
       
    if ((oCanvas != null) && (aReviewImageData.length > 0)) {
        oObject = aReviewImageData[0];
        DrawPostReviewImage(null,oObject,null);
    } else if (aReviewImageData.length > 0) {
        for (i=0;i<aReviewImageData.length;i++) {
            oObject = aReviewImageData[i];
            DrawPostReviewImage("POSTCANVAS"+i,oObject,"POSTIMAGE"+i);
        }
    }
}    

pDrawFunction = pDrawPostImage;
   
function ChartColMouseOver(oMenu) {
    sChartColColor = oMenu.style.color;
    sChartColBackground = oMenu.style.backgroundColor;
    oMenu.style.color = "#FFFFFF";
    oMenu.style.backgroundColor = "#888888";
    oMenu.style.cursor = 'pointer';
}

function ChartColMouseOut(oMenu) {
    oMenu.style.color = sChartColColor;
    oMenu.style.backgroundColor = sChartColBackground;  
}

function ChartColClick(oMenu,sParams) {
    window.location = sParams;
}

function onReleaseRowMouseOver(oMenu, iID) {
    var i;
    
    sChartColColor = oMenu.style.color;
    sChartColBackground = oMenu.style.backgroundColor;
    oMenu.style.color = "#FFFFFF";
    oMenu.style.backgroundColor = "#754F00";

    for (i = 1; i < oMenu.cells.length; i++) {
        oMenu.cells[i].style.backgroundColor = "#754F00";
        oMenu.cells[i].style.color = "#FFFFFF";
    }

    oMenu.style.cursor = 'pointer';
    onCompareTitleMouseOver(iID);
}

function onReleaseRowMouseOut(oMenu, iID) {
    var sBGColor;
    var i;

    oMenu.style.color = "#754F00"
    oMenu.style.backgroundColor = "#FFFFFF";

    for (i = 1; i < oMenu.cells.length; i++) {
        oMenu.cells[i].style.color = "#754F00";

        if (oMenu.cells[i].id == "17") {
            if (i % 2 == 1) oMenu.cells[i].style.backgroundColor = "#EFEFEF";
            else oMenu.cells[i].style.backgroundColor = "#FFFFFF";
        } else {
            if (i % 2 == 0) oMenu.cells[i].style.backgroundColor = "#EFEFEF";
            else oMenu.cells[i].style.backgroundColor = "#FFFFFF";
        }
    }
    onCompareTitleMouseOut(iID);
}

function OnChartRowClick(iReleaseID,iScriptID) {
    var iSessionID = GetSessionID();
    window.location = "/mri.aspx?ID=" + iSessionID + "&MID=6&NID=" + iScriptID + "&RID=" + iReleaseID;
}

function ChartMenuClick(iChartValueID) {
    var iChartTypeID = GetValue("ChartTypeID");
    oObject = document.getElementById("CHARTMENU"+iChartTypeID);
    if (oObject != null) {
        SetValue("ChartTypeID",iChartValueID);
        document.forms['aspnetForm'].submit();
    }
}

function SelectCurrentChartMenu() {
    var iChartTypeID = GetValue("ChartTypeID");
    oObject = document.getElementById("CHARTMENU"+iChartTypeID);
    if (oObject != null) oObject.className = 'menutextover';
}

function ChartMenuMouseOver(oMenu) {
    oMenu.className    = 'menutextover';
    oMenu.style.cursor = 'pointer';
    SelectCurrentChartMenu();
}

function ChartMenuMouseOut(oMenu) {
    oMenu.className = 'menutext';
    SelectCurrentChartMenu();
}

function ChartAuditOnLoad() {
    var iChartTypeID = GetValue("ChartTypeID");

    SelectCurrentMenu();
    SelectCurrentChartMenu();
    
    if (iChartTypeID == "19") PlotMixtureData("MCANVAS1",0);
    if (iChartTypeID == "20") PlotTimingData("TCANVAS1",0);
}

function ChartPostEditOnLoad() {
    var iChartTypeID = GetValue("ChartTypeID");

    if (iChartTypeID == "19") {
        PlotMixtureData("MCANVAS1",0);
        PlotMixtureData("MCANVASPREVIEW1",0);
    } else if (iChartTypeID == "20") {
        PlotTimingData("TCANVAS1",0);
        PlotTimingData("TCANVASPREVIEW1",0);
    }
}

function ChartPublicSiteOnLoad() {
    var i = 0;
    
    for (i=0;i<aMixtureChartData.length;i++) {
        PlotMixtureData("MCANVAS" + (i+1),i);
    }
    
    for (i=0;i<aTimingChartData.length;i++) {
        PlotTimingData("TCANVAS" + (i+1),i);
    }
}

function ShowMatrix() {
    var sTable = document.getElementById("MATRIXSPAN").innerHTML;
    oMatrix.innerHTML = sTable;
    oMatrix.onclick = CloseMatrix;
    oMatrix.style.display = "inline"
    SwapElement("GRADINGMATRIX","MATRIXANCHOR",true);
    return false;
}

function CloseMatrix() {
    SwapElement("GRADINGMATRIX","MATRIXSPAN",false);
    oMatrix.style.display = "none";
}

function PublicChartMenuMouseOver(oMenu) {
    oMenu.className    = 'dialogmenutextover';
    oMenu.style.cursor = 'pointer';
    SelectCurrentPublicChartMenu();
}

function PublicChartMenuMouseOut(oMenu) {
    oMenu.className = 'dialogmenutext';
    SelectCurrentPublicChartMenu();
}

function FiveChartsMenuClick(iChartID,iScriptID) {
    var iSessionID = GetSessionID();
    window.location = "/mri.aspx?ID=" + iSessionID + "&MID=4&NID=" + iScriptID + "&CID=" + iChartID;
}

function SelectCurrentPublicChartMenu() {
    var iChartTypeID = GetValue("ChartTypeID");
    oObject = document.getElementById("CHARTMENU"+iChartTypeID);
    if (oObject != null) oObject.className = 'dialogmenutextover';
}

function DVDMenuClick(iDID, iWID, iGenID) {
    var iSessionID = GetSessionID();
    window.location = "/out_on_dvd_blu-ray.aspx?BID=" + iGenID + "&DID=" + iDID + "&WID=" + iWID + "&DVD=1";
}

function onCopyHeadlineToClipboard(sText) {
    sText = ReplaceAll(sText, "~!~", '"');
    sText = ReplaceAll(sText, "~~~", "'");
    copyToClipboard(sText);
    SetSpanString("LabelMessage", "The data was copied to the clipboard.");
}

function onSynopsisClick(oControl, iScriptID, iReleaseID) {
    if (bClosing) {
        bClosing = false;
        return;
    }

    var i = 0;
    var t = '"pointer"';
    var s = '<table border="0" cellspacing="0" cellpadding="1" width="350" style="' + 
            'background-color:#E4FFFF;border-style:solid;border-width:3px;' +
            'border-color:#B0B0B0" ';

    var oObject = null;

    iGenCount = 35;

    for (i = 0; i < aReviewImageData.length; i++) {
        oObject = aReviewImageData[i];

        if (oObject.sReleaseID == iReleaseID) break;
        else oObject = null;
    }

    if (oObject == null) return;

    s = s + "><tr class='markettext'>";
    s = s + "<td align='center'>";
    s = s + "<table background='/Images/header_synopsis.png' cellpadding='0' cellspacing='0' border='0'>";
    s = s + "<tr><td width='314'><div style='height:37px'></div></td></td>";
    s = s + "<td width='36' onclick='onSynopsisClose()' onmouseover='this.style.cursor=" + t + "'>";
    s = s + "</td></tr></table></div></td></tr><tr class='markettext'><td>"
    s = s + "<div style='padding-left:10px;padding-right:10px;padding-bottom:8px' align='justify'>" + oObject.sSynopsis + "... ";
    s = s + "<a href='/publish.aspx?BID=" + iScriptID + "&RID=" + iReleaseID + "'>";
    s = s + "<span class='tagline' ";
    s = s + "onmouseover='onLinkMouseOver(this)' ";
    s = s + "onmouseout='onLinkMouseOut(this)' ";
    s = s + "onclick='onCurrentMarketClick(this," + iScriptID +",6," + iReleaseID + ")' ";
    s = s + "><b><i>More...</i></b></span></a></div>";
    s = s + "</td></tr></table>";
    
//    s = s + "<div class='FieldName' style='color:#B0B0B0;text-align:left'>";
//    s = s + "<table border='0' cellpadding='1' cellspacing='0' align='left'>";
//    s = s + "<tr><td align='right'>Released by:</td><td align='left'>" + oObject.sStudio + " on " + oObject.sDate + "</td></tr>";
//    s = s + "<tr><td align='right'>Directed by:</td><td align='left'>" + oObject.sDirector + "</td></tr>";
//    s = s + "<tr><td align='right'>Genre:</td><td align='left' nowrap='nowrap'>" + oObject.sGenre + "</td></tr>";
//    s = s + "<tr><td align='right'>MPAA Rated:</td><td align='left'>" + oObject.sRating + "</td></tr>"; 
//    s = s + "</table>";
//    s = s + "</div>";

    oSynopsisParent = oControl;
    oControl.appendChild(oSynopsisDiv);
    oSynopsisDiv.innerHTML = s;
//    oSynopsisDiv.style.visibility = "visible";
    //    oSynopsisDiv.style.display = "block";

    CountGenerator(34, iReleaseID);
}

function onSynopsisClose() {
    oSynopsisParent.removeChild(oSynopsisDiv);
     if (!bIsIE) bClosing = true;
}
