﻿/* Copyright (c) 2007, Envapower Inc. All rights reserved. */

/*
*  This file contains funtions related with arrow charts component
*/

var ARROW_NUM_COLS = 11;
var timer;
// This function draws a Market arrow
function drawToggleArrow(tabMarket, numArrows){
    //The arrow div
    var divTabMarket = document.getElementById('div'+tabMarket);
  
    //The arrows data
    var hdnArrowsData = document.getElementById('hdn'+tabMarket).value;
    var arrowsData = hdnArrowsData.split('|');
    
    // buffer for drawing toggle arrows
   var buff = new Array();
   buff[buff.length] = '';
   var currentArrow = 1;
   
   internalDrawArrow(numArrows, 0, tabMarket, arrowsData);
   
   
}

// Used to draw properly the navigation buttons
function drawNavigationButtons(buff, numArrows, currentArrow, tabMarket, arrowsData){
  
  var backText = (currentArrow > 1) ? arrowsData[1+ARROW_NUM_COLS*(currentArrow-2)] : '';
  var forwardText = (currentArrow == numArrows) ? '' : arrowsData[1+ARROW_NUM_COLS*(currentArrow)];
  
  var hideElement = 'style="visibility:hidden; display:none;"';
  var textStyle = 'class = "arrowSubTitle"';
  var prevStatus = (currentArrow > 1) ? textStyle : hideElement;
  var nextStatus = (currentArrow == numArrows) ? hideElement : textStyle;
  buff[buff.length] = '<table width="290px"><tr class="tblHeader">';
  buff[buff.length] = '<td align="right" width="145px">';
  buff[buff.length] = '<label ' + prevStatus + '>'+backText+'</label>';
  buff[buff.length] = '<input type="image" src="img/backArrow.png" ' + prevStatus + ' onclick="prevPage(\''+numArrows+'\', \''+currentArrow+'\', \''+tabMarket+'\', \''+arrowsData+'\');return false;" /></td>';
  buff[buff.length] = '<td><input type="image" src="img/forwardArrow.png" ' + nextStatus + ' onclick="nextPage(\''+numArrows+'\', \''+currentArrow+'\', \''+tabMarket+'\', \''+arrowsData+'\');return false;"/>';
  buff[buff.length] = '<label ' + nextStatus + '>'+forwardText+'</label>';
  buff[buff.length] = '</td></tr></table>';  
}

// Used to show the previous page of the results
function prevPage(numArrows, currentArrow, tabMarket, arrowsData){
    currentArrow--;
    internalDrawArrow(numArrows, currentArrow, tabMarket, arrowsData);
}

// Used to show the next page of the results
function nextPage(numArrows, currentArrow, tabMarket, arrowsData){
    currentArrow++;    
    
    if(currentArrow <= numArrows){
        internalDrawArrow(numArrows, currentArrow, tabMarket, arrowsData);
   }
}

function internalDrawArrow(numArrows, currentArrow, tabMarket, arrowsDataCollection){
    if (currentArrow == 0){
        currentArrow++;
        var arrowsData = arrowsDataCollection;
    } else {
        var arrowsData = arrowsDataCollection.split(',');
    }   
    
    var dataPosition = ARROW_NUM_COLS*(currentArrow-1);
    
    // buffer for drawing the arrow
   var buff = new Array();
   buff[buff.length] =  '';
   buff[buff.length] =  '<span class="arrowTitle">' + arrowsData[0+dataPosition] + '</span><br>';
   if (1 < numArrows){
        buff[buff.length] =  '<span class="arrowSubTitle">' + arrowsData[1+dataPosition] + '</span><br>';
   }
        if (arrowsData[3+dataPosition] == 'Price')
        {
            buff[buff.length] = '<div><span id="'+tabMarket+'Percentage" class="' + arrowsData[2+dataPosition] + '">' + arrowsData[4+dataPosition]
                           + ' % <br><span id="'+tabMarket+'Difference" class="arrowDif">' + arrowsData[5+dataPosition]
                           + ' <span id="'+tabMarket+'DifUnit" class="mwClass">' + arrowsData[6+dataPosition]
                           + '</span></span></span></div>';
            buff[buff.length] = '<span id="'+tabMarket+'CurrentValue" class="arrowText"> Current ' + arrowsData[3+dataPosition] + ' = '
                                + arrowsData[7+dataPosition] + ' <span id="'+tabMarket+'CurrentUnit" class="mwClass">' 
                                + arrowsData[6+dataPosition] + '</span></span><br>';
            buff[buff.length] = '<span id="'+tabMarket+'CurrentDate" class="arrowDate">' + arrowsData[8+dataPosition] + '</span><br>';
            buff[buff.length] = '<span id="'+tabMarket+'PreviousValue" class="arrowText"> Previous Day ' + arrowsData[3+dataPosition] + ' = '
                                + arrowsData[9+dataPosition] + ' <span id="'+tabMarket+'PreviousUnit" class="mwClass">' 
                                + arrowsData[6+dataPosition] + '</span></span><br>';
            buff[buff.length] = '<span id="'+tabMarket+'PreviousDate" class="arrowDate">' + arrowsData[10+dataPosition] + '</span><br>';
        } else {
            buff[buff.length] = '<div><span id="'+tabMarket+'Percentage" class="' + arrowsData[2+dataPosition] + '">' + arrowsData[4+dataPosition]
                            + ' % <br><span id="'+tabMarket+'Difference" class="arrowDif">' + arrowsData[5+dataPosition]
                            + ' <span id="'+tabMarket+'DifUnit" class="mwClass">' + arrowsData[6+dataPosition]
                            + '</span></span></span></div>';
            buff[buff.length] = '<span id="'+tabMarket+'CurrentValue" class="arrowText"> Current ' + arrowsData[3+dataPosition] + ' = '
                                + arrowsData[7+dataPosition] + '<span id="'+tabMarket+'CurrentUnit" class="mwClass">' 
                                + arrowsData[6+dataPosition] + '</span></span><br>';
            buff[buff.length] = '<span id="'+tabMarket+'CurrentDate" class="arrowDate">' + arrowsData[8+dataPosition] + '</span><br>';
            buff[buff.length] = '<span id="'+tabMarket+'PreviousValue" class="arrowText"> Previous Day ' + arrowsData[3+dataPosition] + ' = '
                                + arrowsData[9+dataPosition] + '<span id="'+tabMarket+'PreviousUnit" class="mwClass">' 
                                + arrowsData[6+dataPosition] + '</span></span><br>';
            buff[buff.length] = '<span id="'+tabMarket+'PreviousDate" class="arrowDate">' + arrowsData[10+dataPosition] + '</span><br>';
        } 
   
   var divResults = document.getElementById('div'+tabMarket);
   if (1 < numArrows){
    drawNavigationButtons(buff, numArrows, currentArrow, tabMarket, arrowsData);
   }
   // draw the final results
   divResults.innerHTML = buff.join('\n');
}

function updateDataInfo(tabMarket, data){
    //The arrow div
    document.getElementById('hdn'+tabMarket).value = data;
}

function goToMarkPage(){
    window.top.location = "http://www.envapower.com/PowerConsole.aspx";
    return false;
}