﻿// JScript File
var HTMLOutput="";
var thumbscroller = null;
function Display_Cameras()
{ 

    var total=0;
    HTMLOutput="";
    
    var camerasO = document.forms[0].Cameras;
    var lengthO = camerasO.length;
    
    // this indicates that at least one camera is selected
    var cameraChecked = false;
    
    // This case is when there is only one camera checkbox
    if (camerasO != null && camerasO.length == null)
    {
        if(camerasO.checked){
           cameraChecked = true;
           DrawCameras(camerasO.value);
		}
    }
    
    // This case is when there is more than one camera checkbox
    for(var i=0; i < document.forms[0].Cameras.length; i++)
    {
        if(document.forms[0].Cameras[i].checked){
           cameraChecked = true;
           DrawCameras(document.forms[0].Cameras[i].value);
		}
    }
    
    // Reset content to empty
    if (cameraChecked == false) {
        if (thumbscroller == null) 
            thumbscroller = document.getElementById('thumbscroller');
        thumbscroller.innerHTML = "";
    }
    
} 

    function DrawCameras(CameraID) {

            loadCamera("/atisservices/services/findcamera.aspx?CameraID=" + CameraID);
    }
       

    //Load the xml file - using different method for different browsers
    function loadCamera(xmlFile) {

        // Debug variable (set to 1 to debug)
        var debug = 0;

        if (debug)
            alert("function loadCamera(xmlFile):" + xmlFile);
    
        //Initializations
        feed_id = 0;
        feed_total = 0;
        feed_file = xmlFile;    
        
        if(window.XMLHttpRequest) {
        
            // Safari/Mozilla - branch for native XMLHttpRequest object 

    	    var req = new XMLHttpRequest();
            //req.onreadystatechange = requestStateHandler;
            
            req.onreadystatechange = function(){requestStateHandlerMultiCameras(req);};

            req.open("GET", xmlFile, true);
            req.send("");
        }
        else if(document.implementation.createDocument) {//Firefox
            var xmlDocument = document.implementation.createDocument('', 'doc', null);
            
            //The individual load handler function is added during load event
            xmlDocument.addEventListener('load', function (e){traverseMultiCameras(this);}, false); //This function will happen when the file is loaded
            
            // must call this load method after listener is added, otherwise it might not fire
            var loadResult = xmlDocument.load(xmlFile); // returns true if success load
            
            if (loadResult) 
            {
                if (debug)
                    alert("XML Doc loaded");                
            }
            else 
            {
                feedError();
                return false;
            }
            xmlDocument = null;
        }
        else { //IE
            var xmlDocument = new ActiveXObject('Microsoft.XMLDOM');
            xmlDocument.async = false;
            var loadResult = xmlDocument.load(xmlFile);
            if (debug)
                alert("loadResult:" + loadResult);
            if (loadResult) {
                // process xml document with DOM methods e.g.
                traverseMultiCameras(xmlDocument)
            } else {
                feedError();
                return false;
            }
            xmlDocument = null;
        }
        return true;
    }

    //*******************************************************************************
    // Function:     requestStateHandlerMultiCameras
    // Author:       Michael Chu
    // Project:      iMove Build 1.7
    // Date:         Jan 15, 2007
    //
    // Description:  AJAX request state handler. When request is ready,
    //               it will call function traverseMultiCameras(). Used for the 
    //               browser Safari.
    //
    // Parameters:   req - XMLHttpRequest request object 
    //               
    // Returns:
    // Called By:    loadCamera()
    //
    // Revision History:
    //
    //   Name        Date        Description
    //  ------       ------      ------------------------------------------------
    //  
    //*******************************************************************************
    function requestStateHandlerMultiCameras(req) {
        
        try {
            if (req.readyState == 4) { //response ready
                if (req.status == 200) { //OK response
                    traverseMultiCameras(req.responseXML.documentElement);
                } else {
                    alert('There was a problem with the request.');
                }
            }
        }
        catch( e ) {
            alert('Caught Exception: ' + e.description);
        }
    }

    function traverseMultiCameras(tree) {

       var Desc="";
       var Type="";
       var CameraID="";
       var ImageURL="";
       var LongDescr="";
       var Status="";
       var Region="";
       
       var Cameras = tree.getElementsByTagName("camera");
       
       
       for(i = 0; i < Cameras.length; i++){
            // create the camera div
            HTMLOutput = HTMLOutput + "<div id=\"windowCamera"+i+"\" class=\"window\">";
            
            // get the short desc, put it in the header
            //Desc = Cameras[i].getElementsByTagName("shortDescr");
            Desc = getNodeValue(Cameras[i], "shortDescr");
            HTMLOutput = HTMLOutput + "<div id=\"nheader" +i+ "\" class=\"nheader\"><span class=\"title\">" + Desc + "</span></div>";
            
            HTMLOutput = HTMLOutput + "<div id=\"ncnt" +i+ "\" class=\"ncnt\">";
  
            // get the image URL and place it in the body of the camera window
            //ImageURL = Cameras[i].getElementsByTagName("imageUrl");
            ImageURL = getNodeValue(Cameras[i], "imageUrl");
                       
///////////

            var lImageTestTemp = ImageURL;        
            var lImageTest=0;                    
            var lImageNewSrcURL;

            //check to see if image is from the new MOT data
            lImageTest = lImageTestTemp.indexOf('getFile.aspx');   

            if (lImageTest != -1){        
                
                ImageURLEncoded = URLEncode(ImageURL);
                
                //create the new image source URL                            
                lImageNewSrcURL = ImageURL + getTimeStampAndQueryString();
                
               // alert("yes: " + lImageNewSrcURL);            
                
            } else {
                //alert("no: " + lImageTestTemp);            
                ImageURLEncoded = URLEncode(ImageURL);                        
                
                //create the new image source URL                            
                lImageNewSrcURL = ImageURL + getTimeStampQueryString();
                
                //alert("no: " + lImageNewSrcURL);
            }
            
///////////
            
            //Original line before MOT camera hack
            //HTMLOutput = HTMLOutput + "<img src=\"" + ImageURL + getTimeStampQueryString() + "\" alt=\"tmp\" height=\"245\" border=\"1\" />";
            
            HTMLOutput = HTMLOutput + "<img src=\"" + lImageNewSrcURL + "\" alt=\"tmp\" height=\"245\" border=\"1\" />";
            
            // get the long description of the camera          
            //LongDescr = Cameras[i].getElementsByTagName("longDescr");
            LongDescr = getNodeValue(Cameras[i], "longDescr");
            HTMLOutput = HTMLOutput + "<div id=\"camtxt" +i+ "\" class=\"camtxt\">" + LongDescr + "</div></div>";
			
			// close the image div
            HTMLOutput = HTMLOutput + "<div id=\"nfooter" +i+ "\" class=\"nfooter\"></div>";
            HTMLOutput = HTMLOutput + "</div>";
       }
       
       // Assign the html output to the div element
       if (thumbscroller == null) 
            thumbscroller = document.getElementById('thumbscroller');
        thumbscroller.innerHTML = HTMLOutput;
    }

    
    
    