// Omega Rental Car New Zealand (NZ) Ltd Modules Javascript Code

gMarkers = Array();
		gIcons = Array();
		gRegions = Array();
		map = null;
		mapid = 0;
		markerOver = false;
		function Googlemap_createMap(Glat, Glng, Gzoom) {
			GPolygon.prototype.Contains = function(point) {
			var j=0;
			var oddNodes = false;
			var x = point.lng();
			var y = point.lat();
			for (var i=0; i < this.getVertexCount(); i++) {
			  j++;
			  if (j == this.getVertexCount()) {j = 0;}
			  if (((this.getVertex(i).lat() < y) && (this.getVertex(j).lat() >= y))
			  || ((this.getVertex(j).lat() < y) && (this.getVertex(i).lat() >= y))) {
				if ( this.getVertex(i).lng() + (y - this.getVertex(i).lat())
				/  (this.getVertex(j).lat()-this.getVertex(i).lat())
				*  (this.getVertex(j).lng() - this.getVertex(i).lng())<x ) {
				  oddNodes = !oddNodes
				}
			  }
			}
			return oddNodes;
			}
			if (GBrowserIsCompatible()) {
				map = new GMap2(document.getElementById("Googlemap_map"));
				Googlemap_customiseMap();
				map.setCenter(new GLatLng(Glat, Glng), Gzoom);
				// Setup Regions 
				gRegions = Googlemap_getRegions();
				// Setup icons
				var icons = Googlemap_getIcons();
				for(var iconid in icons) {
					var icon = new GIcon();
					icon.image = "../uploads/Googlemap/" + icons[iconid][1];
					icon.iconSize = new GSize(icons[iconid][2], icons[iconid][3]);
					if(icons[iconid][4] == 1) {
						icon.iconAnchor = new GPoint((icons[iconid][2] / 2), (icons[iconid][3])); 
					} else {
						icon.iconAnchor = new GPoint((icons[iconid][2] / 2), (icons[iconid][3] / 2)); 
					}
					icon.infoWindowAnchor = new GPoint((icons[iconid][2] / 2), (icons[iconid][3] / 2));
					gIcons[iconid] = icon;
				}
				GEvent.addListener(map, "zoom", function() {
					Googlemap_showMarkers();
				});

				GEvent.addListener(map, "moveend", function() {
					Googlemap_showMarkers();
				});	
				Googlemap_getMarkers();
			}
		}
		
		function Googlemap_markerOver(i) {
			if(gMarkers[i].displayLabel == 0) map.addOverlay(gMarkers[i].label);
		}
		
		function Googlemap_markerOut(i) {
			if(gMarkers[i].displayLabel == 0) map.removeOverlay(gMarkers[i].label);
		}
		function Googlemap_getMarkers() {
			var request = GXmlHttp.create();
			request.open("GET", "http://www.omegarentalcars.com/modules/display.php?modulename=Googlemap&action=getMarkers&mapid=" + mapid, true);
			request.onreadystatechange = function () {
				if (request.readyState == 4) {
					var xmlDoc = request.responseXML;
					var markers = xmlDoc.documentElement.getElementsByTagName("marker");
					if(markers.length) {
						for(var i = 0; i < markers.length; i++) { 
							var marker = Googlemap_createMarker(markers[i], i);
							if(marker)gMarkers[i] = marker;
						}
						Googlemap_showMarkers();
						Googlemap_showBoxes();
					}
				}
			}
			request.send(null);
		}
		function Googlemap_createMarker(markerDetails, i) {
			var iconid = parseInt(markerDetails.getAttribute("iconid"));
			var icon = gIcons[iconid];
			var marker = new GMarker(new GLatLng(markerDetails.getAttribute("latitude"),markerDetails.getAttribute("longitude")), icon);
			marker.id = markerDetails.getAttribute("id");
			marker.name = markerDetails.getAttribute("name");
			marker.description = markerDetails.getAttribute("description");
			marker.display = false;
			marker.displayLabel = parseInt(markerDetails.getAttribute("label_display"));
			marker.label = Googlemap_createLabel(marker.name, new GLatLng(markerDetails.getAttribute("latitude"),markerDetails.getAttribute("longitude")),markerDetails.getAttribute("label_offset_x"),markerDetails.getAttribute("label_offset_y"), iconid);
			GEvent.addListener(marker, "click", function() {
				Googlemap_markerClick(i);
			});
			GEvent.addListener(marker, "mouseover", function() { Googlemap_markerOver(i); });
			GEvent.addListener(marker.label, "click", function() { Googlemap_markerClick(i); });
			GEvent.addListener(marker.label, "mouseover", function() { markerOver = true; });
			GEvent.addListener(marker.label, "mouseout", function() { markerOver = false; Googlemap_markerOut(i); });
			return marker;
		}
		
		function Googlemap_createLabel(label, latLng, offsetX, offsetY, iconid) {
			var icons = Googlemap_getIcons();
			offsetX = parseInt(offsetX);
			offsetY = parseInt(offsetY);
			if(iconid > 0) {
				if(offsetX == 0) offsetX = (icons[iconid][2] / 2) + 5;
				if(offsetY == 0) offsetY = -(icons[iconid][3] / 2);
			} else {
				if(offsetX == 0) offsetX = 20;
				if(offsetY == 0) offsetY = -30;
			}
			var icon = new GIcon();
			icon.image = "";
			icon.iconAnchor = new GPoint(20, 15);
			icon.iconSize = new GSize(100, 12);
			opts = {
				"icon": icon,
				"clickable": true,
				"labelText": label.replace(" ", "&nbsp;"),
				"labelClass": Googlemap_marker_label,
				"labelOffset": new GSize(offsetX, offsetY)
			};
			var markerLabel = new LabeledMarker(latLng, opts);
			return markerLabel;
		}
		
		function Googlemap_markerClick(i) {
			// Close current info window
			map.closeInfoWindow();
			// If the marker is not displayed then center in on the marker and reload the visible markers
			if(!gMarkers[i].display) {
				var point = gMarkers[i].getPoint();
				map.setCenter(new GLatLng(point.lat(), point.lng()));
				Googlemap_showMarkers();
			}
			if(gMarkers[i].description) gMarkers[i].openInfoWindowHtml(gMarkers[i].description, GSize(10, 10));
			googlemap_markerClickCustomisation(i);
		}
		function Googlemap_showMarkers() {
			for(var a = 0; a < gMarkers.length; a++) {
				var bounds = map.getBounds(); 
				var sw = bounds.getSouthWest(); 
				var ne = bounds.getNorthEast(); 
				var point = gMarkers[a].getPoint();
				
				if(bounds.contains(point)) {
					if(!gMarkers[a].display) {
						map.addOverlay(gMarkers[a]);
						gMarkers[a].display = true;
						if(gMarkers[a].displayLabel == 1) map.addOverlay(gMarkers[a].label);
					}
				} else {
					map.removeOverlay(gMarkers[a]);
					gMarkers[a].display = false;
				}
			}
		}
					function mailinglist_subscribe_validate() {				if(document.getElementById('mailinglist_first_name') && document.getElementById('mailinglist_last_name')) mailinglist_concat_name();
				if (document.getElementById("mailinglist_name").value == '' || document.getElementById("mailinglist_name").value == ' ' || document.getElementById("mailinglist_name").value == 'Name') {
					alert('You must enter your name');
				} else				if (document.getElementById("mailinglist_email").value == '' || document.getElementById("mailinglist_email").value == 'Email') {
					alert('You must enter your email address');
				} else {
					return true;
				}
				return false;
			}
			function mailinglist_unsubscribe_validate() {
				if (document.getElementById("mailinglist_email").value == '' || document.getElementById("mailinglist_email").value == 'Email') {
					alert('You must enter your email address');
				} else {
					return true;
				}
				return false;
			}
			function mailinglist_concat_name() {
				document.getElementById('mailinglist_name').value = document.getElementById('mailinglist_first_name').value + ' ' + document.getElementById('mailinglist_last_name').value;
			}function seekom_checkDate() {
	var PickUpDate = document.getElementById('PickUpDate').value.split('-');
	var ReturnDate = document.getElementById('ReturnDate').value.split('-');
	var dtePU = new Date(PickUpDate[0], (parseFloat(PickUpDate[1])-1), PickUpDate[2]);
	var dteDO = new Date(ReturnDate[0], (parseFloat(ReturnDate[1])-1), ReturnDate[2]);
	var d = new Date();
	var today = new Date(d.getFullYear(), d.getMonth(), d.getDate());
    if (d.getFullYear() == PickUpDate[0] && d.getMonth() == (parseFloat(PickUpDate[1])-1) && PickUpDate[2] < d.getDate()) {
        if (document.getElementById('PickUpDate_month')) document.getElementById('PickUpDate_month').selectedIndex = parseFloat(PickUpDate[1]);
		dtePU = new Date(parseFloat(PickUpDate[0]), parseFloat(PickUpDate[1]), PickUpDate[2]);
	} else if (dtePU < today) {
		if (document.getElementById('PickUpDate_year')) document.getElementById('PickUpDate_year').value = parseFloat(PickUpDate[0]) + 1;
		dtePU = new Date((parseFloat(PickUpDate[0]) + 1), (parseFloat(PickUpDate[1])-1), PickUpDate[2]);
	}
	if(dtePU >= dteDO) {
		var one_day=1000*60*60*24;
		var newDO = new Date(dtePU.getTime() + (one_day * 1));
		var intYear = newDO.getFullYear();
		if(newDO.getMonth() + 1 < 10) var intMonth = '0' + (newDO.getMonth() + 1);
		else var intMonth = newDO.getMonth() + 1;
		if(newDO.getDate() < 10) var intDay = '0' + newDO.getDate();
		else var intDay = newDO.getDate();
		if(intMonth == '13') {
			intDay = '01'; 
			intMonth = '01'; 
			intYear++; 
		}
		document.getElementById('ReturnDate').value = intYear + '-' + intMonth + '-' + intDay;
		if(document.getElementById('ReturnDate_day')) document.getElementById('ReturnDate_day').value = intDay;
		if(document.getElementById('ReturnDate_month')) document.getElementById('ReturnDate_month').value = intMonth;
		if(document.getElementById('ReturnDate_year')) document.getElementById('ReturnDate_year').value = intYear;
	}
}
function seekom_calculateBooking() {
	var total	= 0;
	var rowTotal= 0;
	var groupid	= 0;
	var mainid	= 0;
	var mainPrice = 0;
	var min		= 0;
	var qty		= 0;
	var price	= 0;
	var oldmain	= -1;
	
	arrGroups = document.getElementById('seekom_groups').value.split(',');
	for(i = 0; i < arrGroups.length; i++) {
		groupid = arrGroups[i];
		mainid = parseInt(document.getElementById('group_main_' + groupid).value);
		qty = parseInt(document.getElementById('group_qty_' + groupid).value);
		min = parseInt(document.getElementById('group_min_' + groupid).value);
		price = parseFloat(document.getElementById('group_price_' + groupid).value);
		rowTotal = 0;
		if(!min) min = 1;
		if(qty > 0) rowTotal = (price * min) * qty;
		total = total + rowTotal;
		document.getElementById('price_' + groupid).innerHTML = '$' + formatNumber(rowTotal);
		if(mainid != oldmain) document.getElementById('group_total_amount_' + mainid).value = 0;
		mainPrice = parseFloat(document.getElementById('group_total_amount_' + mainid).value);
		mainPrice = mainPrice + rowTotal;
		document.getElementById('group_total_amount_' + mainid).value = mainPrice;
		document.getElementById('group_total_' + mainid).innerHTML = '$' + formatNumber(mainPrice);
		oldmain = mainid;
	}
	document.getElementById('booking_total').innerHTML = '$' + formatNumber(total);
}
function seekom_changeRadio(groupid, extraCode, value) {
	var loop = document.getElementsByName('groupid_' + groupid).length;
	for(var i = 0; i < loop; i++) {
		var code = document.getElementsByName('groupid_' + groupid)[i].value;
		if(code == extraCode) {
			document.getElementsByName('groupid_' + groupid)[i].checked = true;
			document.getElementById('group_qty_' + code).value = value;
		} else {
			document.getElementsByName('groupid_' + groupid)[i].checked = false;
			document.getElementById('group_qty_' + code).value = '0';
		}
	}
	seekom_calculateBooking();
}
function formatNumber(value) {
	lowValue=Math.floor(value);
	var p=100*(value-lowValue)+0.6;
	
	if(p>99.99) {
		returnNumber = lowValue + 1;
		returnNumber +=".00";
	} else {
		returnNumber=lowValue+".";
		returnNumber+=Math.floor(p/10);
		returnNumber+=Math.floor(p%10);
	}
	return returnNumber;
}
function seekom_pickupChange(id) {
	var domain = (("https:" == document.location.protocol) ? "https://apexinternet.com/secure/omegarentalcars.com/" : "http://www.omegarentalcars.com/");
	AjaxRequest.get(
		{
		  'url' : domain + 'modules/display.php?modulename=Seekom&ajax=true&pickup=' + id
		  ,'onSuccess':function(req){
			document.getElementById("seekom_PickUpTime").innerHTML = req.responseText;
		  }
		}
	);
}
function seekom_returnChange(id) {
	var domain = (("https:" == document.location.protocol) ? "https://apexinternet.com/secure/omegarentalcars.com/" : "http://www.omegarentalcars.com/");
	AjaxRequest.get(
		{
		  'url' : domain + 'modules/display.php?modulename=Seekom&ajax=true&return=' + id
		  ,'onSuccess':function(req){
			document.getElementById("seekom_ReturnTime").innerHTML = req.responseText;
		  }
		}
	);
}