﻿// JScript File
    
    //Var to use in loop scenario
    var showonce=false;
    
   //START function 1
    function load() {
            if (GBrowserIsCompatible()) {
                
	                map = new GMap2(document.getElementById("map"));
	                
	                //Advanced dragzoom
	                
	                
	                //zoom in and out controlls
	                //map.addControl(new GSmallMapControl());	                
	                map.addControl(new GLargeMapControl());
	                
	                //gives user choice of swapping between map,sattelite or both(hybrid)
	                map.addControl(new GMapTypeControl());
	                
	                //small navigation map
	                map.addControl(new GOverviewMapControl(new GSize(200,160)));
	                
	                
	                //Add scale to map showing km & miles
	                //map.addControl(new GScaleControl());
	                
	                AddZoomControl(map);
	                
				//map.enableDoubleClickZoom();
				map.enableContinuousZoom();
				//map.enableScrollWheelZoom();	                
	               
	                map.setCenter(new GLatLng(55.69386,12.461092), 11);
	                RefreshData();
                }
        }   
    //END function 1   
    
        function load2() {
            if (GBrowserIsCompatible()) {
                
	                map = new GMap2(document.getElementById("map"));
	                
	                //Advanced dragzoom
	                
	                
	                //zoom in and out controlls
	                //map.addControl(new GSmallMapControl());	                
	                map.addControl(new GLargeMapControl());
	                
	                //gives user choice of swapping between map,sattelite or both(hybrid)
	                map.addControl(new GMapTypeControl());
	                
	                //small navigation map
	                map.addControl(new GOverviewMapControl(new GSize(200,160)));
	                
	                
	                //Add scale to map showing km & miles
	                //map.addControl(new GScaleControl());
	                
	                AddZoomControl(map);
	                
				//map.enableDoubleClickZoom();
				map.enableContinuousZoom();
				//map.enableScrollWheelZoom();	                
	               
	                map.setCenter(new GLatLng(55.69386,12.461092), 11);
	                RefreshData2();
                }
        }
    
    //START function 2
    //Google GXmlHttp not working
   function GmakeRequest(url, parameters)
   {
        var request = GXmlHttp.create();       
        request.open("GET",url + "?" + parameters, true);
        request.onreadystatechange = DoUpdate;
        request.send(null);            
   }
    //END function 2

   //START function 3
   var http_request = false;   
   
   function makeRequest(url, parameters) {
          http_request = false;
          if (window.XMLHttpRequest) { // Mozilla, Safari,...          
             http_request = new XMLHttpRequest();
             if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/xml');
             }
          } else if (window.ActiveXObject) { // IE
             try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
             } catch (e) {
                try {
                   http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
             }
          }
          if (!http_request) {
             alert('Cannot create XMLHTTP instance');
             return false;
          }
          http_request.onreadystatechange = DoUpdate;

          http_request.open('GET', url + "?" + parameters, true);
          try {
            http_request.send(null);
          }
          catch(e){
                //do nothing
          }
       }
    //END function 3

    //START function 4
    function getMarkerState(TimeInSeconds)
    {
        //calculate the state

        var elapsedMIN= parseFloat(TimeInSeconds)/60;   

        if(elapsedMIN<5){
            return 1;
        }
        else if (elapsedMIN<10){
            return 2;
        }
        else{
            return 3;
        } 
    }
    //START function 4

    //START function 5
    function GetImageName(direction,state) {
            var color="";
            var headingID=0;
            switch(state){
                case 0:
                 return "stop2.png";        
                case 1:
                  color="g";
                  break;  
                case 2:
                  color="y";
                  break;    
                case 3:
                  color="r";
                  break;                                                      
            }

            headingID= parseInt(parseFloat(direction)/(360/16))+1;
            
            if(headingID>16){
                headingID=16;
            }
            
            if(headingID<1){
                headingID=1;
            }    
                                
            return color + headingID + ".png";                        
        }
    //END function 5
    
    
 
    
    //START function 6
    function RefreshData() 
   {
      var ReqParameter=xmlReqParameter1;
      if(xmlReqParameter2.length>0){
            if(ReqParameter.length>0){
                    ReqParameter+="&"
                }
          ReqParameter+= xmlReqParameter2
        }
      
      if(xmlReqParameter3.length>0){
            if(ReqParameter.length>0){
                    ReqParameter+="&"
                }
          ReqParameter+= xmlReqParameter3
        }
      if(xmlReqParameter4.length>0){
            if(ReqParameter.length>0){
                    ReqParameter+="&"
                }
          ReqParameter+= xmlReqParameter4
        } 
     
      makeRequest(xmlDataMainURL, ReqParameter);  
      
      setTimeout('RefreshData()',delay);       
   }
   //END function 6
   
function RefreshData2() 
   {
      var ReqParameter=xmlReqParameter1;
      if(xmlReqParameter2.length>0){
            if(ReqParameter.length>0){
                    ReqParameter+="&"
                }
          ReqParameter+= xmlReqParameter2
        }
      
      if(xmlReqParameter3.length>0){
            if(ReqParameter.length>0){
                    ReqParameter+="&"
                }
          ReqParameter+= xmlReqParameter3
        }
      if(xmlReqParameter4.length>0){
            if(ReqParameter.length>0){
                    ReqParameter+="&"
                }
          ReqParameter+= xmlReqParameter4
        } 
     
      makeRequest(xmlDataMainURL, ReqParameter);  
     
   }
   
   //START function 7
/**
 * returns the GMT of the value if it matches the format.
 * @return If the date string matches the format string, it returns the
 * GMT of the date.
 * @param val the date string
 * @param format the format string
 * @return false if it is not a date, the date otherwise
 */
getDateFromFormat = function(val, format) {
    var y;
    var m;
    var d;
    var h = 0;
    var i = 0;
    var s = 0;

    var spl = format.split(/[-\/\s\:]/);
    var valspl = val.split(/[-\/\s\:]/);
    var last_sep = 0;
    var last_val_sep = 0;
    for (var a = 0; a < spl.length ; a++) {
        //verify that separators are the same
        last_sep += spl[a].length;
        last_val_sep += valspl[a].length;
        if (format.charAt(last_sep) != val.charAt(last_val_sep)) {
            return false;
        }
        last_sep++;
        last_val_sep++;
        //try a match
        switch (spl[a].toLowerCase()){
            case 'yyyy': y = parseInt(valspl[a]); break;
            case 'yy': y = parseInt(2000 + (valspl[a] - 0)); break;
            case 'mmm':
                for (m = 0; m < 12; m++) {
                    var m_name = DateFunction.monthNames[m].toLowerCase();
                    if (m_name == valspl[a].toLowerCase()) break;
                }
                m++;
                break;
            // *1 needed // parseInt bizzarre with august month? ex: 15/08/2006
            case 'mm': m = (valspl[a]*1); break;
            case 'dd': d = (valspl[a]*1); break;
            case 'h': h = (valspl[a]*1); break;
            case 'i': i = (valspl[a]*1); break;
            case 's': s = (valspl[a]*1); break;
            default: return false;
        }
    }
    //check month
    if (m < 1 || m > 12) {
        return false;
    }
    //check day in month
    if (d < 1) {
        return false;
    }
    if (m == 4 || m == 6|| m == 9 || m == 11) {
        if (d > 30) {
            return false;
        }
    } else if (m == 2) {
        if ( ( (y % 4 == 0) && (y % 100 != 0) ) || (y % 400 == 0) ) {
            if (d > 29) {
                return false;
            }
        } else if (d > 28) {
            return false;
        }
    } else {
        if (m > 31) {
            return false;
        }
    }
    //check hours
    if (h < 0 || h > 23) {
        return false
    }
    //check minutes
    if (m < 0 || m > 59) {
        return false
    }
    //check seconds
    if (s < 0 || s > 59) {
        return false
    }

    return new Date(y, m - 1, d, h, i, s);
}
   
   //END function 7
   
   //START function 8
   function AddZoomControl(map){
   
   	                //simple dragzoom
	              //  map.addControl(new GZoomControl({sColor:'#000',nOpacity:.3,sBorder:'1px solid yellow'}), new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(10,30)));
	              //http://dev.compuhouse.com/CHVTSweb/

  map.addControl(new GZoomControl(
		/* first set of options is for the visual overlay.*/
		{
			nOpacity:.2,
			sBorder:"2px solid red"
		},
		/* second set of optionis is for everything else */
		{
			sButtonHTML:"<img src='Images/zoom-button.gif' />",
			sButtonZoomingHTML:"<img src='Images/zoom-button-activated.gif' />",
			oButtonStartingStyle:{width:'16px',height:'16px'}
		},null
		/* third set of options specifies callbacks */
//		{
//			buttonClick:function(){display("Looks like you activated GZoom!")},
//			dragStart:function(){display("Started to Drag . . .")},
//			dragging:function(x1,y1,x2,y2){display("Dragging, currently x="+x2+",y="+y2)},
//			dragEnd:function(nw,ne,se,sw,nwpx,nepx,sepx,swpx){display("Zoom! NE="+ne+";SW="+sw)}
//		}
	),new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(23,280)));
   
   }
   
   //END function 8

//START function 9
//Normal info window  example
function createMarkerInfoWindowHTML(point,icon,HTMLcontent) {
      var marker = new GMarker(point,icon);
      GEvent.addListener(marker, "click", function() {
            marker.openInfoWindowHtml(HTMLcontent);
              });                            
      return marker;
      }
            
//END function 9


//START function 10
//Normal info window  example
function createMarkerInfoWindowHTMLPanToPoint(point, icon, HTMLcontent) {
    var marker = new GMarker(point, icon);
    // Create some example tabs
    var infoTabs = [
			new GInfoWindowTab("General","abc"),
			new GInfoWindowTab("A", "abc"),
			new GInfoWindowTab("B", "abc"),
			new GInfoWindowTab("C", "abc"),
		];
      
    GEvent.addListener(marker, "click", function() {
        marker.openInfoWindowTabsHtml(infoTabs);
    });
            
//        GEvent.addListener(marker, "click", function() {
//            marker.openInfoWindowHtml(HTMLcontent);
//        });    
              
      GEvent.addListener(marker, "dblclick", function() {                                           
            map.panTo(point); 
            }); 
                                                                                  
      return marker;
      }
            
//END function 10

//START function 11
  function getDateDK(sDate){
        //"dd-mm-yyyy"
        var ldate=getDateFromFormat(sDate,"dd-mm-yyyy h:i:s");
        return ldate.toLocaleString();      
    }

//END function 11

//START function 12
function jsdisplayKm(elementname,kmPerHr) {	
    var element	 = null;
  	var temp  =parseInt(kmPerHr);
  	newkm=parseInt(kmPerHr);
  	temp+=" km/h";
  	var xx=document.documentElement;
  	if (xx.hasChildNodes(elementname))
        document.getElementById(elementname).innerHTML = temp;
   
}
//END function 12

//START function 13

function getInnerText (node) {
    if (typeof node.textContent != 'undefined') {
            return node.textContent;
        }
        else if (typeof node.innerText != 'undefined') {
            return node.innerText;
        }
        else if (typeof node.text != 'undefined') {
            return node.text;
        }
        else {
            switch (node.nodeType) {
            case 3:
            case 4:
            return node.nodeValue;
            break;
            case 1:
            case 11:
            var innerText = '';
            for (var i = 0; i < node.childNodes.length; i++) {
            innerText += getInnerText(node.childNodes[i]);
        }
        return innerText;
        break;
        default:
        return '';
        }
    }
}


//END function 13