﻿/// <reference name="MicrosoftAjax.js"/>
function DisplayTweets(jsonTweets) {

    var tweets = eval(jsonTweets);
    var tweetWindows = [1, 2, 3, 4]
    tweetWindows.sort(RandomSort);
    
    if (tweets.length > 0) {
        // display tweets randomly
        for (var i = 0; i < 4; i++) {

            var tweetWindow = document.getElementById("tweet" + tweetWindows[i].toString());
            var header = document.getElementById("tweet" + tweetWindows[i].toString() + "head");
            var body = document.getElementById("tweet" + tweetWindows[i].toString() + "body");

            if (i == 4 || i >= tweets.length) {
                tweetWindow.style.visibility = "hidden";
            } else {
                // update header and body
                if (header && body) {
                    header.innerHTML = tweets[i].TweetDate + " " + tweets[i].UserFirstName + " says:"
                    body.innerHTML = tweets[i].Message;
                    tweetWindow.style.visibility = "visible";
                } // if
            } // if-else
            
        }// for        

    }// if


}
function GetTweetComplete(results) {
    if (results != null) {
        // parse string
        DisplayTweets(results);
    }// if
}
function GetTweet() {
    DPH.Ajax.GetTweet(GetTweetComplete)
}
function TweetTimer() {

    // get tweets
    GetTweet();

    // recurse and call in 10 sec
    setTimeout("TweetTimer()", 20000);

}
function RandomSort() {
    return 0.5 - Math.random();
}
var DatgetDrawer = new function() {

    this.InitCanvas = function(canvasHandle) {
        if (typeof window.G_vmlCanvasManager != "undefined") {
            //a friendlier way to check to see if we're in IE emulating Canvas
            canvasHandle = window.G_vmlCanvasManager.initElement(canvasHandle);
        }

        return canvasHandle;
    }

    this.RenderCircleDatgetNeedle = function(canvasName, percent) {

        // set min/max degree ranges for datget background
        var minDeg = -75;
        var maxDeg = 165;

        // get controls
        var c = DatgetDrawer.InitCanvas(document.getElementById(canvasName));
        var context = c.getContext('2d');
        var needle = document.getElementById("datgetCircleNeedle");

        // calculate deg65rees using percent
        var percentVal = (maxDeg - minDeg) * percent
        var d = minDeg + percentVal;

        // rotate needle
        context.save();
        context.clearRect(0, 0, 82, 82);
        context.translate(41, 41);
        context.rotate(parseInt(d) * Math.PI / 180);
        context.translate(-28, -28);
        context.drawImage(needle, 0, 0);
        context.restore();
    } // DatgetDrawer.RenderCircleDatgetNeedle()

    this.RenderCircleDatget = function(canvasName) {
        // get datget background
        var g = DatgetDrawer.InitCanvas(document.getElementById(canvasName));

        var context = g.getContext('2d');
        var image = document.getElementById("datgetCircleBack");

        // draw image
        context.drawImage(image, 0, 0);
    } // DatgetDrawer.RenderCircleDatget()

    this.RenderHalfmoonDatget = function(canvasName) {
        // get datget background
        var g = DatgetDrawer.InitCanvas(document.getElementById(canvasName));
        var context = g.getContext('2d');
        var image = document.getElementById("datgetMoonBack");

        // draw image
        context.drawImage(image, 0, 0);
    } // DatgetDrawer.RenderHalfmoonDatget()

    this.RenderHalfmoonDatgetNeedle = function(canvasName, percent) {
        // set min/max degree ranges for datget background
        var minDeg = -95;
        var maxDeg = 95;

        // get controls
        var c = DatgetDrawer.InitCanvas(document.getElementById(canvasName));
        var context = c.getContext('2d');
        var needle = document.getElementById("datgetMoonNeedle");

        // calculate degrees using percent
        var percentVal = (maxDeg - minDeg) * percent
        var d = minDeg + percentVal;
        d = 45;
        // rotate needle
        context.save();
        context.clearRect(0, 0, 93, 67);
        context.translate(50, 50);
        context.rotate(parseInt(d) * Math.PI / 180);
        context.translate(-35, -24);
        context.drawImage(needle, 0, 0);
        context.restore();
    } // DatgetDrawer.RenderHalfmoonDatgetNeedle()

    this.RenderBarDatget = function(canvasName) {
        // get datget background
        var g = DatgetDrawer.InitCanvas(document.getElementById(canvasName));
        var context = g.getContext('2d');
        var image = document.getElementById("datgetBarBack");

        // draw image
        context.drawImage(image, 0, 0);
    } // DatgetDrawer.RenderBarDatget()

    this.RenderBarDatgetNeedle = function(canvasName, percent) {
        // set min/max degree ranges for datget background
        var min = 18;
        var max = 195;

        // get controls
        var c = DatgetDrawer.InitCanvas(document.getElementById(canvasName));
        var context = c.getContext('2d');
        var needle = document.getElementById("datgetBarNeedle");

        // calculate degrees using percent
        var percentVal = (max - min) * percent
        var d = min + percentVal;

        // rotate needle
        context.save();
        context.clearRect(0, 0, 228, 61);
        context.translate(d, 0);
        context.drawImage(needle, 0, 10);
        context.restore();
    } // DatgetDrawer.RenderBarDatgetNeedle()

}            // DatgetDrawer

var DatgetData = new function() {
    this.POLineCountFeedRecd = function(results) {

        // parse results
        var data = eval("(" + results + ")");

        // render
        DatgetDrawer.RenderCircleDatgetNeedle("datget1NeedleCanvas", data.Percent);

        // display value
        document.getElementById("datget1Value").innerHTML = data.FormattedValue;

    } // DatagetData.POLineCountFeedRcd()

    this.GetPOLineCount = function() {
        DPH.Ajax.DatgetPOLineCount(DatgetData.POLineCountFeedRecd);

        // set timer
        setTimeout("DatgetData.GetPOLineCount();", 10000);
    } // DatgetData.GetPOLineCount()

    this.POSpendFeedRecd = function(results) {

        // parse results
        var data = eval("(" + results + ")");

        // render
        DatgetDrawer.RenderHalfmoonDatgetNeedle("datget3NeedleCanvas", data.Percent);
        
        // display value
        document.getElementById("datget3Value").innerHTML = data.FormattedValue;
    } // DatgetData.POSpendFeedRecd()

    this.GetPOSpend = function() {

        DPH.Ajax.DatgetPOSpend(DatgetData.POSpendFeedRecd);

        // set timer
        setTimeout("DatgetData.GetPOSpend();", 10000);
    } // DatgetData.GetPOSpend()

    this.AvgAttributesFeedRecd = function(results) {

        // parse results
        var data = eval("(" + results + ")");

        // render
        DatgetDrawer.RenderBarDatgetNeedle("datget2NeedleCanvas", data.Percent);

        // display value
        document.getElementById("datget2Value").innerHTML = data.FormattedValue;
        
    } // DatgetData.AvgAttributesFeedRecd()

    this.GetAvgAttributes = function() {

        DPH.Ajax.DatgetAvgAttributes(DatgetData.AvgAttributesFeedRecd);

        // set timer
        setTimeout("DatgetData.GetAvgAttributes();", 10000);
    } // DatgetData.GetAvgAttributes()

}     // DatgetData

var DatgetInitializer = new function() {
    this.StartPOLineCountDatget = function() {

        // render datget background
        DatgetDrawer.RenderCircleDatget("datget1BackCanvas");

        // start po feed
        DatgetData.GetPOLineCount();

    } // DatgetInitializer.StartPOLineCountDatget()

    this.StartPOSpendDatget = function() {
        // render halfmoon datget
        DatgetDrawer.RenderHalfmoonDatget("datget3BackCanvas");

        // start po spend feed
        DatgetData.GetPOSpend();

    } // DatgetInitializer.StartPOSpendDatget()

    this.StartAvgAttributesDatget = function() {
        // render status bar datget
        DatgetDrawer.RenderBarDatget("datget2BackCanvas");

        // start avg attributes feed
        DatgetData.GetAvgAttributes();
        
    } // DatgetInitializer.StartAvgAttributesDatget()

}    // DatgetInitailizer 

