// jscript.js

// These function call the Web service method to
// retrieve values.
var Core = {};

Core.getElementsByClass = function(theClass)
{
  var elementArray = [];

  if (typeof document.all != "undefined")
  {
    elementArray = document.all;
  }
  else
  {
    elementArray = document.getElementsByTagName("*");
  }
  var matchedArray = [];
  var pattern = new RegExp("(^| )" + theClass + "( |$)");

  for (var i = 0; i < elementArray.length; i++)
  {
    if (pattern.test(elementArray[i].className))
    {
      matchedArray[matchedArray.length] = elementArray[i];
    }
  }

  return matchedArray;
}

function Latitude(Qty)
{
    function getXMLHTTP() {
        var XMLHttp = null;
        if (window.XMLHttpRequest) {
            try {
                XMLHttp = new XMLHttpRequest();
             } catch (e) { }
         } else if (window.ActiveXObject) {
            try {
                XMLHttp = new ActiveXObject("Msxml2.XMLHTTP");
             } catch (e) {
                try {
                    XMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) { }
              }
          }
          return XMLHttp;
    }
    
    function handlerFunction() {    
    if (XMLHTTP.readyState == 4 && XMLHTTP.status == 200) {
        var xml=XMLHTTP.responseXML;
        alert("Returned Data: " + XMLHTTP.responseText);
        alert(xml);
        //Output = XMLHTTP.responseText;
        var elements = xml.getElementsByTagName("string");
        Output = xml.getElementsByTagName("string");
        //var valuesArray=elements.childNodes[0].nodeValue()
        
        //alert("Arrays: " + valuesArray);
        //alert("Lats: " + elements[0].childNodes[0].nodeValue + "," + elements[1].childNodes[0].nodeValue);
        }
     }

     var XMLHTTP =getXMLHTTP();
     var Output;
     var data='<?xml version="1.0" encoding="utf-8"?>';
     data += '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" '
     data += 'xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'
     data += '<soap:Body>';
     data += '<LatCoords xmlns="http://trickertracker.com/">';
     data += '<Qty>'+ Qty + '</Qty>'
     data += '</LatCoords>'
     data += '</soap:Body>';
     data += '</soap:Envelope>   ';
     XMLHTTP.open("POST","PrivWebService.asmx");
     XMLHTTP.onreadystatechange=handlerFunction;
     XMLHTTP.setRequestHeader("Content-type","text/xml; charset=utf-8");
     XMLHTTP.send(data);
     return Output
}



function Longitude(Qty)
{
    function getXMLHTTP() {
        var XMLHttp = null;
        if (window.XMLHttpRequest) {
            try {
                XMLHttp = new XMLHttpRequest();
             } catch (e) { }
         } else if (window.ActiveXObject) {
            try {
                XMLHttp = new ActiveXObject("Msxml2.XMLHTTP");
             } catch (e) {
                try {
                    XMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) { }
              }
          }
          return XMLHttp;
    }
    
    function handlerFunction() {    
    if (XMLHTTP.readyState == 4 && XMLHTTP.status == 200) {
        var xml=XMLHTTP.responseXML;
        var elements = xml.getElementsByTagName("string");
        alert("Longs: " + elements[0].childNodes[0].nodeValue + "," + elements[1].childNodes[0].nodeValue);
        }
     }

     var XMLHTTP =getXMLHTTP();
     var Output;
     var data='<?xml version="1.0" encoding="utf-8"?>';
     data += '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" '
     data += 'xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'
     data += '<soap:Body>';
     data += '<LongCoords xmlns="http://trickertracker.com/">';
     data += '<Qty>'+ Qty + '</Qty>'
     data += '</LongCoords>'
     data += '</soap:Body>';
     data += '</soap:Envelope>   ';
     XMLHTTP.open("POST","PrivWebService.asmx");
     XMLHTTP.onreadystatechange=handlerFunction;
     XMLHTTP.setRequestHeader("Content-type","text/xml; charset=utf-8");
     XMLHTTP.send(data);
     return XMLHTTP.ResponseText
}

function Speed(Qty)
{
    function getXMLHTTP() {
        var XMLHttp = null;
        if (window.XMLHttpRequest) {
            try {
                XMLHttp = new XMLHttpRequest();
             } catch (e) { }
         } else if (window.ActiveXObject) {
            try {
                XMLHttp = new ActiveXObject("Msxml2.XMLHTTP");
             } catch (e) {
                try {
                    XMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) { }
              }
          }
          return XMLHttp;
    }
    
    function handlerFunction() {    
    if (XMLHTTP.readyState == 4 && XMLHTTP.status == 200) {
        var xml=XMLHTTP.responseXML;
        var elements = xml.getElementsByTagName("string");
        alert("Speeds: " + elements[0].childNodes[0].nodeValue + "," + elements[1].childNodes[0].nodeValue);
        }
     }

     var XMLHTTP =getXMLHTTP();
     var Output;
     var data='<?xml version="1.0" encoding="utf-8"?>';
     data += '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" '
     data += 'xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'
     data += '<soap:Body>';
     data += '<Speed xmlns="http://trickertracker.com/">';
     data += '<Qty>'+ Qty + '</Qty>'
     data += '</Speed>'
     data += '</soap:Body>';
     data += '</soap:Envelope>   ';
     XMLHTTP.open("POST","PrivWebService.asmx");
     XMLHTTP.onreadystatechange=handlerFunction;
     XMLHTTP.setRequestHeader("Content-type","text/xml; charset=utf-8");
     XMLHTTP.send(data);
     return XMLHTTP.ResponseText
}

function Time(Qty)
{
    function getXMLHTTP() {
        var XMLHttp = null;
        if (window.XMLHttpRequest) {
            try {
                XMLHttp = new XMLHttpRequest();
             } catch (e) { }
         } else if (window.ActiveXObject) {
            try {
                XMLHttp = new ActiveXObject("Msxml2.XMLHTTP");
             } catch (e) {
                try {
                    XMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) { }
              }
          }
          return XMLHttp;
    }
    
    function handlerFunction() {    
    if (XMLHTTP.readyState == 4 && XMLHTTP.status == 200) {
        var xml=XMLHTTP.responseXML;        
        var elements = xml.getElementsByTagName("string");
        alert("Times: " + elements[0].childNodes[0].nodeValue);
        }
     }

     var XMLHTTP =getXMLHTTP();
     var Output;
     var data='<?xml version="1.0" encoding="utf-8"?>';
     data += '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" '
     data += 'xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'
     data += '<soap:Body>';
     data += '<Time xmlns="http://trickertracker.com/">';
     data += '<Qty>'+ Qty + '</Qty>'
     data += '</Time>'
     data += '</soap:Body>';
     data += '</soap:Envelope>   ';
     XMLHTTP.open("POST","PrivWebService.asmx");
     XMLHTTP.onreadystatechange=handlerFunction;
     XMLHTTP.setRequestHeader("Content-type","text/xml; charset=utf-8");
     XMLHTTP.send(data);
     return XMLHTTP.ResponseText
}

function CoordSpeedTime(map,UserName, Position,index)
{
    function getXMLHTTP() {
        var XMLHttp = null;
        if (window.XMLHttpRequest) {
            try {
                XMLHttp = new XMLHttpRequest();
             } catch (e) { }
         } else if (window.ActiveXObject) {
            try {
                XMLHttp = new ActiveXObject("Msxml2.XMLHTTP");
             } catch (e) {
                try {
                    XMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) { }
              }
          }
          return XMLHttp;
    }
    
    function handlerFunction() {    
    if (XMLHTTP.readyState == 4 && XMLHTTP.status == 200) {
        //alert("Returned Data: " + XMLHTTP.responseText);
        var xml=XMLHTTP.responseXML;
        var elements = xml.getElementsByTagName("string");
        document.getElementById("tracklatid").innerHTML = elements[2].childNodes[0].nodeValue;
        document.getElementById("tracklongid").innerHTML = elements[1].childNodes[0].nodeValue;
        var point = new GLatLng(elements[2].childNodes[0].nodeValue,elements[1].childNodes[0].nodeValue);
        var marker = new GMarker(point);
        window.setTimeout(function() {
            map.panTo(point);
        }, 500);
        var InfoWText = "Time: <b>" + elements[5].childNodes[0].nodeValue + "</b><br/>"
        InfoWText = InfoWText + "Speed: <b>" + elements[4].childNodes[0].nodeValue + "</b> mph"
        GEvent.addListener(marker,"click",function() {
            marker.openInfoWindowHtml(InfoWText);
        });
        map.addOverlay(marker);
        //Populate Table in YourMap.aspx with values
        document.getElementById("time" + index).innerHTML=elements[5].childNodes[0].nodeValue
        document.getElementById("speed" + index).innerHTML=elements[4].childNodes[0].nodeValue
        tableTwoOffset=index + 10;
        document.getElementById("time" + tableTwoOffset).innerHTML=elements[5].childNodes[0].nodeValue
        document.getElementById("speed" + tableTwoOffset).innerHTML=elements[4].childNodes[0].nodeValue
        return point
        }
     }

     var XMLHTTP =getXMLHTTP();
     var Output;
     var data='<?xml version="1.0" encoding="utf-8"?>';
     data += '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" '
     data += 'xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'
     data += '<soap:Body>';
     data += '<CoordSpeedTimePublic xmlns="http://trickertracker.com/">';
     data += '<UserName>'+ UserName + '</UserName>'
     data += '<Pos>'+ Position + '</Pos>'
     data += '</CoordSpeedTimePublic>'
     data += '</soap:Body>';
     data += '</soap:Envelope>   ';
     XMLHTTP.open("POST","WebService.asmx");
     XMLHTTP.onreadystatechange=handlerFunction;
     XMLHTTP.setRequestHeader("Content-type","text/xml; charset=utf-8");
     XMLHTTP.send(data);
     //return point
}


function LatestCoordSpeedTime()
{
    // This position value of 1 should always return latest coord.
    var Position = 1;
    
    function getXMLHTTP() {
        var XMLHttp = null;
        if (window.XMLHttpRequest) {
            try {
                XMLHttp = new XMLHttpRequest();
             } catch (e) { }
         } else if (window.ActiveXObject) {
            try {
                XMLHttp = new ActiveXObject("Msxml2.XMLHTTP");
             } catch (e) {
                try {
                    XMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) { }
              }
          }
          return XMLHttp;
    }

    function ShowAddress(response) {
      if (!response || response.Status.code != 200) {
        alert("Status Code:" + response.Status.code);
      } else {
        var place = response.Placemark[0];
        document.getElementById("location1").innerHTML = place.address
      }
    
    }
    
    function handlerFunction() {    
    if (XMLHTTP.readyState == 4 && XMLHTTP.status == 200) {
        //alert("Returned Data: " + XMLHTTP.responseText);
        var xml=XMLHTTP.responseXML;
        var elements = xml.getElementsByTagName("string");
        var latitude = elements[2].childNodes[0].nodeValue;
        var longitude = elements[1].childNodes[0].nodeValue;
        var locat = new GLatLng(latitude,longitude);
        //Populate Table in Default.aspx with values
        var locatGeo = new GClientGeocoder().getLocations(locat,ShowAddress);
        document.getElementById("time1").innerHTML = elements[5].childNodes[0].nodeValue;
        return
        }
     }
    
     var XMLHTTP =getXMLHTTP();
     var Output;
     var data='<?xml version="1.0" encoding="utf-8"?>';
     data += '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" '
     data += 'xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'
     data += '<soap:Body>';
     data += '<CoordSpeedTime xmlns="http://trickertracker.com/">';
     data += '<Pos>'+ Position + '</Pos>'
     data += '</CoordSpeedTime>'
     data += '</soap:Body>';
     data += '</soap:Envelope>   ';
     XMLHTTP.open("POST","Private/PrivWebService.asmx");
     XMLHTTP.onreadystatechange=handlerFunction;
     XMLHTTP.setRequestHeader("Content-type","text/xml; charset=utf-8");
     XMLHTTP.send(data);
     //return point
}