﻿
/*  AJAX scripts
=================
*/

var xmlHttp;

function refreshDir(str) { 
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null) {
		alert ("Browser does not support HTTP Request");
		return;
	}
	if (str == null) {
		str = "?";
	}
	var url = "./scripts/proc_empDirList.php";
	url += str;
	url += "&sID=";
	url += Math.random();
	xmlHttp.onreadystatechange = stateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function retrievePage(str) { 
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null) {
		alert ("Browser does not support HTTP Request");
		return;
	}
	var url = "../scripts/proc_retrievePage.php?sectID=";
	url += str;
	url += "&sID=";
	url += Math.random();
	xmlHttp.onreadystatechange = stateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function stateChanged() {
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
		document.getElementById("contentContainer").innerHTML=xmlHttp.responseText;
	} 
}

function GetXmlHttpObject() {
	var xmlHttp=null;
	try {
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	} catch (e) {
		//Internet Explorer
		try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}


/*  MM scripts
=================
*/

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

/*  Window spawn
=================
*/

function newVideoWindow(whichVid) {
	winX = ((screen.width / 2) - 200);
	winY = ((screen.height / 2) - 150);
	myVidWindow = window.open ("./viewer.php?vid=" + whichVid,"Viewer","status=1,width=400,height=300");
	myVidWindow.moveTo(winX,winY);
}
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

/*  Terrotory Map Functions
=================
*/

function initMap(locID, address, phone, lat, long) {

	if (GBrowserIsCompatible()) {


		function RegionZoomControls() {
		}
		

		RegionZoomControls.prototype = new GControl();
		
		RegionZoomControls.prototype.initialize = function(map) {
			
			// Create wrapper for all controls
			var container = document.createElement("div");
			container.className = 'mapControlsWrapper';
			
			// Create container for controls and style
			var controlsContainer = document.createElement("div");
			controlsContainer.className = 'zoomControls';

			// Create container for region select and style
			var regionContainer = document.createElement("div");
			regionContainer.className = 'zoomControls';
			
			// Attach sub containers to main wrapper
			container.appendChild(controlsContainer);
			container.appendChild(regionContainer);
			
			// Move Up
			var moveUpControl = document.createElement("div");
			moveUpControl.className = 'mapControlIcons mapMoveUp';
			controlsContainer.appendChild(moveUpControl);
			GEvent.addDomListener(moveUpControl, "click", function() {
				map.panDirection(0, 1);
			});
			
			// Move Left
			var moveLeftControl = document.createElement("div");
			moveLeftControl.className = 'mapControlIcons mapMoveLeft';
			controlsContainer.appendChild(moveLeftControl);
			GEvent.addDomListener(moveLeftControl, "click", function() {
				map.panDirection(1, 0);
			});
			
			// Move Right
			var moveRightControl = document.createElement("div");
			moveRightControl.className = 'mapControlIcons mapMoveRight';
			controlsContainer.appendChild(moveRightControl);
			GEvent.addDomListener(moveRightControl, "click", function() {
				map.panDirection(-1, 0);
			});
			
			// Move Down
			var moveDownControl = document.createElement("div");
			moveDownControl.className = 'mapControlIcons mapMoveDown';
			controlsContainer.appendChild(moveDownControl);
			GEvent.addDomListener(moveDownControl, "click", function() {
				map.panDirection(0, -1);
			});
			
			// Zoom in
			var zoomInControl = document.createElement("div");
			zoomInControl.className = 'mapZoomIcons mapZoomIn';
			controlsContainer.appendChild(zoomInControl);
			GEvent.addDomListener(zoomInControl, "click", function() {
				map.zoomIn();
			});
			
			// Zoom out
			var zoomOutControl = document.createElement("div");
			zoomOutControl.className = 'mapZoomIcons mapZoomOut';
			controlsContainer.appendChild(zoomOutControl);
			GEvent.addDomListener(zoomOutControl, "click", function() {
				map.zoomOut();
			});

			// Area Label
			var areaLabel = document.createElement("div");
			areaLabel.className = 'mapControlsSectLabels';
			regionContainer.appendChild(areaLabel);
			areaLabel.appendChild(document.createTextNode("View Area"));
			
			// Kansas zoom
			var KSDiv = document.createElement("div");
			KSDiv.className = 'stateIcons KSZoomIcon';
			regionContainer.appendChild(KSDiv);
			KSDiv.innerHTML = '<a class="stateIcons KSZoomIcon">&nbsp;</a>';
			GEvent.addDomListener(KSDiv, "click", function() {
				map.setCenter(new GLatLng(38.469503,-97.421539), 8);
			});
		
			// Oklahoma zoom
			var OKDiv = document.createElement("div");
			OKDiv.className = 'stateIcons';
			regionContainer.appendChild(OKDiv);
			OKDiv.innerHTML = '<a class="stateIcons OKZoomIcon">&nbsp;</a>';
			GEvent.addDomListener(OKDiv, "click", function() {
				map.setCenter(new GLatLng(36.189762, -95.872467), 8);
			});
			
			// Texas zoom
			var TXDiv = document.createElement("div");
			TXDiv.className = 'stateIcons TXZoomIcon';
			regionContainer.appendChild(TXDiv);
			TXDiv.innerHTML = '<a class="stateIcons TXZoomIcon">&nbsp;</a>';
			GEvent.addDomListener(TXDiv, "click", function() {
				map.setCenter(new GLatLng(35.136026, -101.872135), 10);
			});
			
			map.getContainer().appendChild(container);
			return container;
		}
		
		// By default, the control will appear in the top left corner of the
		// map with 7 pixels of padding.
		RegionZoomControls.prototype.getDefaultPosition = function() {
			return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(7, 7));
		}

		
	
		var map = new GMap2(document.getElementById("map_canvas"));
		//map.addControl(new GSmallMapControl());
		map.addControl(new RegionZoomControls());
		
		if (lat != null && long != null) {
			map.setCenter(new GLatLng(lat, long), 12);
		}
		
		map.openInfoWindowHtml(map.getCenter(),("<div class='mapLocInfo'><h3>Store No. " + locID + "</h3> <p>" + address + "</p> <p>" + phone + "</p> <form action='http://maps.google.com/maps' method='get' target='_blank' class='mapdirform'><br /><h4>Directions:</h4> <br /><input type='text' class='inputbox' size='30' name='saddr' id='saddr' value='Enter Address...' /><br /><input value='Get Directions' class='formButton' type='submit' /><input type='hidden' name='hl' value='en'/><input type='hidden' name='daddr' value='" + lat + ", " + long + "' /></form></div>"));
		
				
		// create territory overlays
		var manhattanArea = new GPolygon([
			new GLatLng(39.264157, -97.083435),
			new GLatLng(38.944457, -97.083435),
			new GLatLng(38.944457, -96.448974),
			new GLatLng(39.264157, -96.448974),
			new GLatLng(39.264157, -97.083435)
		], "#9a1424", 0, 0, "#9a1424", 0.6);
		
		var amarilloArea = new GPolygon([
			new GLatLng(35.384571, -102.150878),
			new GLatLng(34.903493, -102.150878),
			new GLatLng(34.903493, -101.574096),
			new GLatLng(35.384571, -101.574096),
			new GLatLng(35.384571, -102.150878)
		], "#9a1424", 0, 0, "#9a1424", 0.6);
		
		
		var wichitaArea = new GPolygon([
			new GLatLng(38.203655, -98.747863),
			new GLatLng(37.004746, -98.747863),
			new GLatLng(37.004746, -96.921386),
			new GLatLng(37.142803, -96.921386),
			new GLatLng(37.149371, -97.599792),
			new GLatLng(37.385435, -97.599792),
			new GLatLng(37.385435, -96.926879),
			new GLatLng(37.922534, -96.926879),
			new GLatLng(37.935533, -97.610778),
			new GLatLng(38.192862, -97.610778),
			new GLatLng(38.203655, -98.747863)
		], "#9a1424", 0, 0, "#9a1424", 0.6);
		

		var oklahomaArea = new GPolygon([
			new GLatLng(36.998165, -96.630249),
			new GLatLng(36.416862, -96.652221),
			new GLatLng(36.363798, -96.564331),
			new GLatLng(36.120127, -96.564331),
			new GLatLng(36.120127, -96.481933),
			new GLatLng(35.817813, -96.470947),
			new GLatLng(35.750970, -96.663208),
			new GLatLng(35.380092, -96.663208),
			new GLatLng(35.380092, -96.718139),
			new GLatLng(35.321848, -96.718139),
			new GLatLng(35.294952, -94.432983),
			new GLatLng(35.393528, -94.432983),
			new GLatLng(36.498597, -94.617004),
			new GLatLng(36.997068, -94.617004),
			new GLatLng(36.997068, -96.630249)
		], "#9a1424", 0, 0, "#9a1424", 0.6);

						
								
		map.addOverlay(manhattanArea);
		map.addOverlay(amarilloArea);
		map.addOverlay(wichitaArea);
		map.addOverlay(oklahomaArea);
		
		
		
		
		
		
		// Create a base icon for all of our markers that specifies the
		// shadow, icon dimensions, etc.
		var wendysIcon = new GIcon(G_DEFAULT_ICON);
		wendysIcon.image = "../media/img/wendysMarker.png";
		wendysIcon.iconSize = new GSize(37, 57);
		wendysIcon.imageMap = [0,0, 37,0, 37,57, 0,57];
		wendysIcon.iconAnchor = new GPoint(18, 57);
		wendysIcon.infoWindowAnchor = new GPoint(40, 25);
		
		// create markers for locations
		var markers;
							
		function createMarker(point, index) {

			markerOptions = { icon:wendysIcon };
			var marker = new GMarker(point, markerOptions);
			
			// popup balloon with location info
			GEvent.addListener(marker, "click", function() {
				marker.openInfoWindowHtml("<div class='mapLocInfo'><h3>Store No. " + markers[index].getAttribute('locID') + "</h3> <p>" + markers[index].getAttribute('address') + "</p> <p>" + markers[index].getAttribute('phone') + "</p> <form action='http://maps.google.com/maps' method='get' target='_blank' class='mapdirform'><h4>Directions:</h4> <input type='text' class='inputbox' size='30' name='saddr' id='saddr' value='Enter Address...' /><br /><input value='Get Directions' class='formButton' type='submit' /><input type='hidden' name='hl' value='en'/><input type='hidden' name='daddr' value='" + markers[index].getAttribute('lat') + ", " + markers[index].getAttribute('long') + "' /></form></div>");
			});
			
			return marker;
		
		}
		
		
		
		
		
		// Download the XML data in and load it on the map.
		GDownloadUrl("../scripts/process_getLocsXML.php", function(data, responseCode) {
		
			// To ensure against HTTP errors that result in null or bad data,
			// always check status code is equal to 200 before processing the data
			if(responseCode == 200) {
				var xml = GXml.parse(data);
				markers = xml.documentElement.getElementsByTagName("location");
				for (var i = 0; i < markers.length; i++) {
					var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("long")));
					//map.addOverlay(new GMarker(point, markerOptions));
					map.addOverlay(createMarker(point, i));
				}			
			} else if(responseCode == -1) {
				alert("Data request timed out. Please try later.");
			} else { 
				alert("Request resulted in error. Check XML file is retrievable.");
			}
			
			
		});
	}
}


