var carGroupName= new Array();  

function trim(inputString) {
   // Removes leading and trailing spaces from the passed string. Also removes
   // consecutive spaces and replaces it with one space. If something besides
   // a string is passed in (null, custom object, etc.) then return the input.
   if (typeof inputString != "string") { return inputString; }
   var retValue = inputString;
   var ch = retValue.substring(0, 1);
   while (ch == " ") { // Check for spaces at the beginning of the string
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   ch = retValue.substring(retValue.length-1, retValue.length);
   while (ch == " ") { // Check for spaces at the end of the string
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }
   while (retValue.indexOf("  ") != -1) { // Note that there are two spaces in the string - look for multiple spaces within the string
      retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings
   }
   return retValue; // Return the trimmed string back to the user
} 

function validateDate(date) {

var today = new Date(date);
var days = today.getDate();
var months = today.getMonth()+1;
var years = today.getYear();
var hours = today.getHours();
var minutes = today.getMinutes();
var seconds = today.getSeconds();
var time_holder; // holds the time

days = ((days < 10) ? "0" + days : days);

months = ((months < 10) ? "0" + months : months);

years = ((years < 10) ? "0" + years : years);

hours = ((hours < 10) ? "0" + hours : hours);
minutes = ((minutes < 10) ? "0" + minutes : minutes);
seconds = ((seconds < 10) ? "0" + seconds : seconds);

time_holder = days + "/" + months + "/" + years + ' '+ hours + ":" + minutes + ":" + seconds;
 
 return(time_holder);

}

function dateDiff(dateform) {
date1 = new Date();
date2 = new Date();
diff  = new Date();

var mm = dateform.substring(0,2);
var dd = dateform.substring(3,5);
var yy = dateform.substring(6,10);
var times = dateform.substring(11,19);

var ddmmyy = dd + '/' + mm + '/' + yy+ ' ' +times;

date1temp = new Date();
date1.setTime(date1temp.getTime());

date2temp = new Date(ddmmyy);
date2.setTime(date2temp.getTime());
//alert(date1.setTime(date1temp.getTime()));
//alert(date2.setTime(date2temp.getTime()));
// sets difference date to difference of first date and second date

diff.setTime(Math.abs(date1.getTime() - date2.getTime()));

timediff = diff.getTime();
//alert(timediff);
secs = Math.floor(timediff / 1000);


/*weeks = Math.floor(timediff / (1000 * 60 * 60 * 24 * 7));
timediff -= weeks * (1000 * 60 * 60 * 24 * 7);

days = Math.floor(timediff / (1000 * 60 * 60 * 24));
timediff -= days * (1000 * 60 * 60 * 24);

hours = Math.floor(timediff / (1000 * 60 * 60));
timediff -= hours * (1000 * 60 * 60);

mins = Math.floor(timediff / (1000 * 60));
timediff -= mins * (1000 * 60);

secs = Math.floor(timediff / 1000);
timediff -= secs * 1000;*/

//var datediffr = weeks + " weeks, " + days + " days, " + hours + " hours, " + mins + " minutes, and " + secs + " seconds";

//document.write(secs);
return(secs); // form should never submit, returns false
}
	function loadMarkersFromXMLASP1() {
		var gPoint;
		var request=init();
		 // Create our "tiny" marker icon
		var iconF = new GIcon();
		iconF.image = "images/flag_green.png";
		iconF.iconSize = new GSize(32, 32);
		iconF.iconAnchor = new GPoint(6, 32);
		iconF.infoWindowAnchor = new GPoint(12, 11);
		
	    function init(){
			if (window.XMLHttpRequest) {
			   return new XMLHttpRequest();
			} else if (window.ActiveXObject) {
			   
			   return new ActiveXObject("Microsoft.XMLHTTP");
			}
		}		
	var url="Simadoures.xml"
		url=url+"?sid="+Math.random();
		request.open("GET", url, false);

		request.onreadystatechange = 
			function() {

				if (request.readyState == 4 && request.status == 200) {						
				
						var xmlDoc = request.responseXML;
						// obtain the array of markers and loop through it
					    var markers = xmlDoc.documentElement.getElementsByTagName("marker");
						var numMarkers = markers.length;
															
						for( var i = 0; i < numMarkers; i++) {	
								
							carGroupLat[i]=parseFloat(markers[i].getAttribute("dblLatitude"));
							carGroupLng[i]=parseFloat(markers[i].getAttribute("dblLongitude"));
							carGroupLoc[i] = markers[i].getAttribute("strPrimLocation");
							
							carGroupName[i] = trim(markers[i].getAttribute("strMobileName"));								   					
							marker = setupIslandMarker(carGroupLat[i], carGroupLng[i], carGroupName[i],iconF);  		    							
								
							
	
						}//for

				} 
		 }//function

	 request.send(null);

	}
	
	function loadMarkersFromXMLASP() {
		var gPoint;
		var request=init();
		 // Create our "tiny" marker icon
	var iconA = new GIcon();
		iconA.image = "images/boat2.png";
		iconA.iconSize = new GSize(32, 32);
		iconA.iconAnchor = new GPoint(6, 32);
		iconA.infoWindowAnchor = new GPoint(12, 11);
		var iconN = new GIcon();
		iconN.image = "images/boat_r_r.png";
		iconN.iconSize = new GSize(32, 32);
		iconN.iconAnchor = new GPoint(6, 32);
		iconN.infoWindowAnchor = new GPoint(12, 11);
		var iconIRC = new GIcon();
		iconIRC.image = "images/boat3.png";
		iconIRC.iconSize = new GSize(32, 32);
		iconIRC.iconAnchor = new GPoint(6, 32);
		iconIRC.infoWindowAnchor = new GPoint(12, 11);
		var iconORC = new GIcon();
		iconORC.image = "images/boat4.png";
		iconORC.iconSize = new GSize(32, 32);
		iconORC.iconAnchor = new GPoint(6, 32);
		iconORC.infoWindowAnchor = new GPoint(12, 11);
		var iconTrad = new GIcon();
		iconTrad.image = "images/boat_g_g.png";
		iconTrad.iconSize = new GSize(32, 32);
		iconTrad.iconAnchor = new GPoint(6, 32);
		iconTrad.infoWindowAnchor = new GPoint(12, 11);
		var iconAI = new GIcon();
		iconAI.image = "images/boat_o.png";
		iconAI.iconSize = new GSize(32, 32);
		iconAI.iconAnchor = new GPoint(6, 32);
		iconAI.infoWindowAnchor = new GPoint(12, 11);
		var iconOI = new GIcon();
		iconOI.image = "images/boat_p_p.png";
		iconOI.iconSize = new GSize(32, 32);
		iconOI.iconAnchor = new GPoint(6, 32);
		iconOI.infoWindowAnchor = new GPoint(12, 11);
		
		
		var iconNI = new GIcon();
		iconNI.image = "images/boat_r_w.png";
		iconNI.iconSize = new GSize(32, 32);
		iconNI.iconAnchor = new GPoint(6, 32);
		iconNI.infoWindowAnchor = new GPoint(12, 11);
		var iconTr = new GIcon();
		iconTr.image = "images/boat_p_p.png";
		iconTr.iconSize = new GSize(32, 32);
		iconTr.iconAnchor = new GPoint(6, 32);
		iconTr.infoWindowAnchor = new GPoint(12, 11);
		
		var iconO = new GIcon();
		iconO.image = "images/boat2_grey.png";
		iconO.iconSize = new GSize(32, 32);
		iconO.iconAnchor = new GPoint(6, 32);
		iconO.infoWindowAnchor = new GPoint(12, 11);
		
	    function init(){
			if (window.XMLHttpRequest) {
			   return new XMLHttpRequest();
			} else if (window.ActiveXObject) {
			   
			   return new ActiveXObject("Microsoft.XMLHTTP");
			}
		}		
		var url="XMLpositions.asp"
		url=url+"?sid="+Math.random();
		request.open("GET", url, true);

		request.onreadystatechange = 
			function() {

				if (request.readyState == 4 && request.status == 200) {						
				
						var xmlDoc = request.responseXML;
						// obtain the array of markers and loop through it
					    var markers = xmlDoc.documentElement.getElementsByTagName("marker");
						var numMarkers = markers.length;
															
						for( var i = 0; i < numMarkers; i++) {	
							carGroupID[i]=markers[i].getAttribute("boatID");
										
							carGroupName[i]=markers[i].getAttribute("boatName");		
							carGroupIcon[i]=markers[i].getAttribute("vehIcon");				
							carGroupLat[i]=parseFloat(markers[i].getAttribute("boatLat"));
							carGroupLng[i]=parseFloat(markers[i].getAttribute("boatLng"));
							carGroupSpeed[i]=parseInt(markers[i].getAttribute("boatSpeed"));							
							carGroupLoc[i] = markers[i].getAttribute("location1");
							carGroupGroup[i] = markers[i].getAttribute("boatGroup");
							
							carGroupDist[i]=parseFloat(markers[i].getAttribute("boatDistance"));
							carGroupDir[i]=parseInt(markers[i].getAttribute("boatDirection"));
												
							carGroupLastResponse[i]=validateDate(markers[i].getAttribute("boatTime"));
							   					
							gPoint = new GLatLng(carGroupLat[i], carGroupLng[i]);
			if (carGroupIcon[i]=="0" && dateDiff(carGroupLastResponse[i]) < 900) {							
								marker = createMarker(gPoint, carGroupID[i], carGroupName[i],carGroupLoc[i],iconA,carGroupDist[i],carGroupDir[i],carGroupSpeed[i],carGroupLastResponse[i], carGroupGroup[i]);          				    							
							} else if (carGroupIcon[i]=="1" && dateDiff(carGroupLastResponse[i]) < 900) {
								marker = createMarker(gPoint, carGroupID[i], carGroupName[i],carGroupLoc[i],iconA,carGroupDist[i],carGroupDir[i],carGroupSpeed[i],carGroupLastResponse[i], carGroupGroup[i]);          				    							
							} else if (carGroupIcon[i]=="2" && dateDiff(carGroupLastResponse[i]) < 900) {
								marker = createMarker(gPoint, carGroupID[i], carGroupName[i],carGroupLoc[i],iconA,carGroupDist[i],carGroupDir[i],carGroupSpeed[i],carGroupLastResponse[i], carGroupGroup[i]);          				    							
							}else if (carGroupIcon[i]=="3" && dateDiff(carGroupLastResponse[i]) < 900) {
								marker = createMarker(gPoint, carGroupID[i], carGroupName[i],carGroupLoc[i],iconA,carGroupDist[i],carGroupDir[i],carGroupSpeed[i],carGroupLastResponse[i], carGroupGroup[i]);          				    							
							}else if (carGroupIcon[i]=="4" && dateDiff(carGroupLastResponse[i]) < 900) {
								marker = createMarker(gPoint, carGroupID[i], carGroupName[i],carGroupLoc[i],iconA,carGroupDist[i],carGroupDir[i],carGroupSpeed[i],carGroupLastResponse[i], carGroupGroup[i]);          				    							
							}else if (carGroupIcon[i]=="5" && dateDiff(carGroupLastResponse[i]) < 900) {
								marker = createMarker(gPoint, carGroupID[i], carGroupName[i],carGroupLoc[i],iconA,carGroupDist[i],carGroupDir[i],carGroupSpeed[i],carGroupLastResponse[i], carGroupGroup[i]);            				    							
							}else if (carGroupIcon[i]=="6" && dateDiff(carGroupLastResponse[i]) < 900) {
								marker = createMarker(gPoint, carGroupID[i], carGroupName[i],carGroupLoc[i],iconA,carGroupDist[i],carGroupDir[i],carGroupSpeed[i],carGroupLastResponse[i], carGroupGroup[i]);          				    							
							} else if (carGroupIcon[i]=="7" && dateDiff(carGroupLastResponse[i]) < 900) {
								marker = createMarker(gPoint, carGroupID[i], carGroupName[i],carGroupLoc[i],iconA,carGroupDist[i],carGroupDir[i],carGroupSpeed[i],carGroupLastResponse[i], carGroupGroup[i]);          				    							
							}else if (carGroupIcon[i]=="8" && dateDiff(carGroupLastResponse[i]) < 900) {
								marker = createMarker(gPoint, carGroupID[i], carGroupName[i],carGroupLoc[i],iconA,carGroupDist[i],carGroupDir[i],carGroupSpeed[i],carGroupLastResponse[i], carGroupGroup[i]);          				    							
							}else {
								marker = createMarker(gPoint, carGroupID[i], carGroupName[i],carGroupLoc[i],iconO,carGroupDist[i],carGroupDir[i],carGroupSpeed[i],carGroupLastResponse[i], carGroupGroup[i]);          				    							
							}		
							map.addOverlay(marker);  
	
						}//for

				} 
		 }//function

	 request.send(null);

	}
	
function loadMarkersFromXMLFile() {
				
		var request=init();
		var iconA = new GIcon();
		iconA.image = "images/boat2.png";
		iconA.iconSize = new GSize(32, 32);
		iconA.iconAnchor = new GPoint(6, 32);
		iconA.infoWindowAnchor = new GPoint(12, 11);
		var iconN = new GIcon();
		iconN.image = "images/boat_r_r.png";
		iconN.iconSize = new GSize(32, 32);
		iconN.iconAnchor = new GPoint(6, 32);
		iconN.infoWindowAnchor = new GPoint(12, 11);
		var iconIRC = new GIcon();
		iconIRC.image = "images/boat3.png";
		iconIRC.iconSize = new GSize(32, 32);
		iconIRC.iconAnchor = new GPoint(6, 32);
		iconIRC.infoWindowAnchor = new GPoint(12, 11);
		var iconORC = new GIcon();
		iconORC.image = "images/boat4.png";
		iconORC.iconSize = new GSize(32, 32);
		iconORC.iconAnchor = new GPoint(6, 32);
		iconORC.infoWindowAnchor = new GPoint(12, 11);
		var iconTrad = new GIcon();
		//iconTrad.image = "images/boat_g_g.png";
		iconTrad.image = "images/boat3.png";
		iconTrad.iconSize = new GSize(32, 32);
		iconTrad.iconAnchor = new GPoint(6, 32);
		iconTrad.infoWindowAnchor = new GPoint(12, 11);
		var iconAI = new GIcon();
		iconAI.image = "images/boat_o.png";
		iconAI.iconSize = new GSize(32, 32);
		iconAI.iconAnchor = new GPoint(6, 32);
		iconAI.infoWindowAnchor = new GPoint(12, 11);
		var iconOI = new GIcon();
		iconOI.image = "images/boat_p_p.png";
		iconOI.iconSize = new GSize(32, 32);
		iconOI.iconAnchor = new GPoint(6, 32);
		iconOI.infoWindowAnchor = new GPoint(12, 11);
		
		
		var iconNI = new GIcon();
		iconNI.image = "images/boat_r_w.png";
		iconNI.iconSize = new GSize(32, 32);
		iconNI.iconAnchor = new GPoint(6, 32);
		iconNI.infoWindowAnchor = new GPoint(12, 11);
		var iconTr = new GIcon();
		iconTr.image = "images/boat_p_p.png";
		iconTr.iconSize = new GSize(32, 32);
		iconTr.iconAnchor = new GPoint(6, 32);
		iconTr.infoWindowAnchor = new GPoint(12, 11);
		
		var iconO = new GIcon();
		iconO.image = "images/boat2_grey.png";
		iconO.iconSize = new GSize(32, 32);
		iconO.iconAnchor = new GPoint(6, 32);
		iconO.infoWindowAnchor = new GPoint(12, 11);
		
		
	    function init(){
			if (window.XMLHttpRequest) {
			   return new XMLHttpRequest();
			} else if (window.ActiveXObject) {
			   
			   return new ActiveXObject("Microsoft.XMLHTTP");
			}
		}		
		var url="XMLPositions.xml"
		url=url+"?sid="+Math.random();
		request.open("GET", url, false);

		request.onreadystatechange = 
			function() {

				if (request.readyState == 4 && request.status == 200) {						
				
						var xmlDoc = request.responseXML;
						// obtain the array of markers and loop through it
					    var markers = xmlDoc.documentElement.getElementsByTagName("ROW");
						var numMarkers = markers.length;
												
						for( var i = 0; i < numMarkers; i++) {	
							carGroupID[i]=markers[i].getAttribute("lMobileID");
							carGroupName[i]=trim(markers[i].getAttribute("strMobileName"));	
							
							carGroupLat[i]=parseFloat(markers[i].getAttribute("dblLatitude"));
							carGroupLng[i]=parseFloat(markers[i].getAttribute("dblLongitude"));
							carGroupSpeed[i]=parseInt(markers[i].getAttribute("dblSpeed"));
							carGroupLoc[i] = markers[i].getAttribute("strPrimLocation");							
							carGroupDist[i]=parseFloat(markers[i].getAttribute("lPrimDistance"));
							carGroupDir[i]=parseInt(markers[i].getAttribute("nPrimDirection"));																
							carGroupLastResponse[i]=markers[i].getAttribute("dtmLocalResponse");	
						
						    carGroupGroup[i] = markers[i].getAttribute("strMobileGroupName");		
							   					
							gPoint = new GLatLng(carGroupLat[i], carGroupLng[i]);
							/*marker = createMarker(gPoint,carGroupID[i],carGroupName[i],carGroupLoc[i],iconA,carGroupDist[i],carGroupDir[i],carGroupSpeed[i],carGroupLastResponse[i], carGroupGroup[i]);    */      				    							
			if (carGroupGroup[i]=="0" && dateDiff(carGroupLastResponse[i]) < 900) {							
								marker = createMarker(gPoint, carGroupID[i], carGroupName[i],carGroupLoc[i],iconA,carGroupDist[i],carGroupDir[i],carGroupSpeed[i],carGroupLastResponse[i], carGroupGroup[i]);          				    							
							} else if (carGroupGroup[i]=="1" && dateDiff(carGroupLastResponse[i]) < 900 ) {
								marker = createMarker(gPoint, carGroupID[i], carGroupName[i],carGroupLoc[i],iconA,carGroupDist[i],carGroupDir[i],carGroupSpeed[i],carGroupLastResponse[i], carGroupGroup[i]);          				    							
							} else if (carGroupGroup[i]=="2" && dateDiff(carGroupLastResponse[i]) < 900) {
								marker = createMarker(gPoint, carGroupID[i], carGroupName[i],carGroupLoc[i],iconA,carGroupDist[i],carGroupDir[i],carGroupSpeed[i],carGroupLastResponse[i], carGroupGroup[i]);          				    							
							}else if (carGroupGroup[i]=="3" && dateDiff(carGroupLastResponse[i]) < 900) {
								marker = createMarker(gPoint, carGroupID[i], carGroupName[i],carGroupLoc[i],iconORC,carGroupDist[i],carGroupDir[i],carGroupSpeed[i],carGroupLastResponse[i], carGroupGroup[i]);          				    							
							}else if (carGroupGroup[i]=="4" && dateDiff(carGroupLastResponse[i]) < 900 ) {
								marker = createMarker(gPoint, carGroupID[i], carGroupName[i],carGroupLoc[i],iconN,carGroupDist[i],carGroupDir[i],carGroupSpeed[i],carGroupLastResponse[i], carGroupGroup[i]);          				    							
							}else if (carGroupGroup[i]=="5" && dateDiff(carGroupLastResponse[i]) < 900 ) {
								marker = createMarker(gPoint, carGroupID[i], carGroupName[i],carGroupLoc[i],iconORC,carGroupDist[i],carGroupDir[i],carGroupSpeed[i],carGroupLastResponse[i], carGroupGroup[i]);            				    							
							}else if (carGroupGroup[i]=="6" && dateDiff(carGroupLastResponse[i]) < 900 ) {
								marker = createMarker(gPoint, carGroupID[i], carGroupName[i],carGroupLoc[i],iconOI,carGroupDist[i],carGroupDir[i],carGroupSpeed[i],carGroupLastResponse[i], carGroupGroup[i]);          				    							
							} else if (carGroupGroup[i]=="7"  && dateDiff(carGroupLastResponse[i]) < 900) {
								marker = createMarker(gPoint, carGroupID[i], carGroupName[i],carGroupLoc[i],iconTrad,carGroupDist[i],carGroupDir[i],carGroupSpeed[i],carGroupLastResponse[i], carGroupGroup[i]);          				    							
							}else if (carGroupGroup[i]=="8" && dateDiff(carGroupLastResponse[i]) < 900) {
								marker = createMarker(gPoint, carGroupID[i], carGroupName[i],carGroupLoc[i],iconTr,carGroupDist[i],carGroupDir[i],carGroupSpeed[i],carGroupLastResponse[i], carGroupGroup[i]);          				    							
							}else if (carGroupGroup[i]=="9" && dateDiff(carGroupLastResponse[i]) < 900) {
								marker = createMarker(gPoint, carGroupID[i], carGroupName[i],carGroupLoc[i],iconTr,carGroupDist[i],carGroupDir[i],carGroupSpeed[i],carGroupLastResponse[i], carGroupGroup[i]);          				    							
							}else {
								marker = createMarker(gPoint, carGroupID[i], carGroupName[i],carGroupLoc[i],iconO,carGroupDist[i],carGroupDir[i],carGroupSpeed[i],carGroupLastResponse[i], carGroupGroup[i]);        				    							
							}			
							map.addOverlay(marker);  
	
						}//for

				} 
		 }//function

	 request.send(null);

	}
	
	
	/*function moveMarkersFromXMLASP() {
		var request=init();
	
	    function init(){
			if (window.XMLHttpRequest) {
			   return new XMLHttpRequest();
			} else if (window.ActiveXObject) {
			   
			   return new ActiveXObject("Microsoft.XMLHTTP");
			}
		}

		var url="XMLPositions.asp"
		url=url+"?sid="+Math.random();//"markers/markers.xml"
		request.open("GET", url, true);
       
		request.onreadystatechange = 
			function() {
       
				if (request.readyState == 4 || request.readyState=="complete") {
				
					
					var xmlDoc = request.responseXML;
					// obtain the array of markers and loop through it
				    var markers = xmlDoc.documentElement.getElementsByTagName("marker");
					numMarkers = markers.length;

					for( var i = 0; i < numMarkers; i++) {	
						carGroupID[i]=parseInt(markers[i].getAttribute("boatID"));
							carGroupIcon[i]=markers[i].getAttribute("vehIcon");			
							carGroupName[i]=markers[i].getAttribute("boatName");									
							carGroupLat[i]=parseFloat(markers[i].getAttribute("boatLat"));
							carGroupLng[i]=parseFloat(markers[i].getAttribute("boatLng"));
							carGroupSpeed[i]=parseInt(markers[i].getAttribute("boatSpeed"));							
							carGroupLoc[i] = markers[i].getAttribute("location1");							
							carGroupGroup[i] = markers[i].getAttribute("groupName");
							carGroupDist[i]=parseInt(markers[i].getAttribute("boatDistance"));
							carGroupDir[i]=parseInt(markers[i].getAttribute("boatDirection"));												
							carGroupLastResponse[i]=markers[i].getAttribute("boatTime");
						
					}//for
					
			}//if
	 }//function

	 request.send(null);
	 numMarkers = 0;
	 map.getInfoWindow().hide();

		for (var i=0; i<gmarkers.length; i++)
		{		 			
			gmarkers[i].setPoint(new GLatLng(carGroupLat[i], carGroupLng[i]));
			sailBoatPosHtmls[i] = getSailBoatPosHTML(carGroupName[i], carGroupGroup[i], Math.round(carGroupDist[i]*0.0005399556) +" n.m from "+ carGroupLoc[i], carGroupDir[i], Math.round(carGroupSpeed[i]*0.5399556)+" knots",carGroupLat[i], carGroupLng[i], carGroupLastResponse[i]);	
			gmarkers[i].htmlStr = 	sailBoatPosHtmls[i];		
			numMarkers++;
		}
	}
	*/
	
	
	
	
