﻿/********************************************************************
 *
 * Manages Transvista Image Snapshots RSS 
 * Author: TTI, Gabriel Torres
 * Date:   January 25, 2008
 *
 *******************************************************************/

//Gabriel, Oct 08, 2007
//Transvista image dates
var veLayerCCTVs    = null; //layer not loaded automatically
var bLayerCCTVs     = false;
var iImageRefRate   = 20000;   //20 seconds image refresh rate
var kCamerasRSSFile = "RSS/TransvistaImages.xml?";
var kImageMainURL = "http://www.transvista.dot.state.tx.us/its-images/vc/";
var kImageOrientationURL = "http://www.transvista.dot.state.tx.us/its-images/orientation/";

// Configure camera icons
// Created: TxDOT and TTI
function ConfigureImageIcons(layer)
{
    var iShapes = layer.GetShapeCount();
	var sInfobox;
	var shape;
	var sDesc, sImgId, sCamDir; 
	var sOrientURL ;
    
    for(var i=0; i < iShapes; ++i) {        
        shape = layer.GetShapeByIndex(i);
        
        sDesc = shape.GetDescription().split(',');
        sImgId = ttiTools.trim(sDesc[0]); //first string will be the camera id
        sCamDir = ttiTools.trim(sDesc[1]); //second string will be the orientation indicators

        //build html text that will be loaded into the map infobox for the transvista cameras
        //sImgId contains the name of the camera which is the same as the camera id        
		sInfobox = "<div style='width:330px; text-align:center; font-size:x-small'>" + 
		    "<img alt='Current traffic image' name='imgTV"+sImgId+"' src='../Images/LoadingImg.png' width='320' height='240' " +
		    "onload='LoadImage(this,\""+kImageMainURL+sImgId+".gif\");' " +
		    "onclick='ReLoadImage(this);' />" +
		    "<br/>Snapshot will refresh automatically<br/>";        

        //test if there is orientation images to the camera image		
		if (sCamDir != "N/A")
		{	
		    sOrientURL = kImageOrientationURL + sImgId;
		    sInfobox += "<br><table border='0' cellspacing='0' cellpadding='0' width='100%' " + 
		        "style='color:black;font-weight:bold'>";
	        if (sCamDir == "NS" || sCamDir == "ALL")
	        {
	            //will inlcude North/South orientation cameras
	            sInfobox += "<tr><td style='width:50%;text-align=center'>Looking North" + 
	                "<br><img alt='Looking North' src='"+sOrientURL+"N.jpg'>" +
	                "</td><td style='width:50%;text-align=center'>" +
	                "Looking South<br><img alt='Looking South' src='"+sOrientURL+"S.jpg'></td></tr>";
	        }
	        if (sCamDir == "WE" || sCamDir == "ALL")
	        {
	            //will inlcude West/East orientation cameras
	            sInfobox += "<tr><td style='width:50%;text-align=center'>Looking West" +
	                "<br><img alt='Looking West' src='"+sOrientURL+"W.jpg'>" +
	                "</td><td style='width:50%;text-align=center'>" +
	                "Looking East<br><img alt='Looking East' src='"+sOrientURL+"E.jpg'></td></tr>";
	        }		    
		    sInfobox += "</table>";
		}
		sInfobox += "<br />Images courtesy of " +
		    "<a target=\"_blank\" " +
		    "href=\"javascript:parent.location='http://www.transvista.dot.state.tx.us';\">" + 
		    "Transvista</a></div>";
		shape.SetDescription(sInfobox);        
        shape.SetCustomIcon("<img src='../Images/Camera.gif' height='14px' width='14px' />"); 
        //s.SetCustomIcon("<img src='../Images/Camera.gif' height='14px' width='14px' " +
        //    "onmouseover='setInterval(function() { ReLoadImage('imgTV"+sImgId+"'); }, iImageRefRate);" +
        //    "onmouseout='setInterval(function() { ReLoadImage('imgTV"+sImgId+"'); }, iImageRefRate);' />");
    }
}

// Load roadway cameras layer
// Created: TTI, 5/15/07
function LoadImages(go)
{
    showProgressIndicator("Loading cameras");
    if (!go)
        setTimeout(function() { LoadImages(1); }, iAsyncDelay);
    else {
        if (!bLayerCCTVs) {
            veLayerCCTVs = new VEShapeLayer();        
            var veShapeSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, 
                              kCamerasRSSFile + GetRan(), veLayerCCTVs);    
            map.ImportShapeLayerData(veShapeSpec, ConfigureImageIcons, false);
            bLayerCCTVs = true;
        }
        else veLayerCCTVs.Show();
        hideProgressIndicator();
    }
}

//load tranvista images
function LoadImage(imgCamera, src)
{
    imgCamera.onload = function(){};
    try {
        imgCamera.src = src + "?" + GetRan();
    }
    catch(e) {}
    setInterval(function() { ReLoadImage(imgCamera); }, iImageRefRate);
}

//refresh tranvista images
function ReLoadImage(imgCamera)
{
    var sSource = imgCamera.src;
    var iPar = 0;
    try {
        iPar = sSource.indexOf("?");
        if (iPar > 0)
            sSource = sSource.substring(0, iPar);
        imgCamera.src = sSource + "?" + GetRan();
    }
    catch(e) {;}
}