// JavaScript Document
    	var map;
    	var geocoder;
		var polyline= new Array();
		var marker = new Array();
		var markerClear = new Array();
		var myDragStart;
		var myMoveEnd;
		var myMoveStart;
		var progressBar;
		
	    var blueSmall = new GIcon(G_DEFAULT_ICON);
			blueSmall.shadow = "";
			blueSmall.printShadow ="";
			blueSmall.image = "images/University/blueSmall.png";
			blueSmall.printImage = "images/University/blueSmall.png";
			blueSmall.mozPrintImage = "images/University/blueSmall.png";
			blueSmall.iconSize = new GSize(12, 13);
			blueSmall.iconAnchor = new GPoint(6, 6);
      	    blueSmall.infoWindowAnchor = new GPoint(6, 6);
		var blueMed = new GIcon(G_DEFAULT_ICON);
			blueMed.image = "images/University/blueMed.png";
			blueMed.shadow = "";
			blueMed.printShadow ="";
			blueMed.printImage = "images/University/blueMed.png";
			blueMed.mozPrintImage = "images/University/blueMed.png";
			blueMed.iconSize = new GSize(14, 15);
			blueMed.iconAnchor = new GPoint(7, 7);
      	    blueMed.infoWindowAnchor = new GPoint(7, 7);
		var blueLarge = new GIcon(G_DEFAULT_ICON);
        	blueLarge.image = "images/University/blueLarge.png";
			blueLarge.shadow = "";
			blueLarge.printShadow ="";
			blueLarge.printImage = "images/University/blueLarge.png";
			blueLarge.mozPrintImage = "images/University/blueLarge.png";
			blueLarge.iconSize = new GSize(17, 18);
			blueLarge.iconAnchor = new GPoint(9, 9);
      	    blueLarge.infoWindowAnchor = new GPoint(9, 9);
		var redSmall = new GIcon(G_DEFAULT_ICON);
			redSmall.shadow = "";
			redSmall.printShadow ="";
			redSmall.image = "images/University/redSmall.png";
			redSmall.printImage = "images/University/redSmall.png";
			redSmall.mozPrintImage = "images/University/redSmall.png";
			redSmall.iconSize = new GSize(12, 13);
			redSmall.iconAnchor = new GPoint(6, 6);
      	    redSmall.infoWindowAnchor = new GPoint(6, 6);
		var redMed = new GIcon(G_DEFAULT_ICON);
			redMed.image = "images/University/redMed.png";
			redMed.shadow = "";
			redMed.printShadow ="";
			redMed.printImage = "images/University/redMed.png";
			redMed.mozPrintImage = "images/University/redMed.png";
			redMed.iconSize = new GSize(14, 15);
			redMed.iconAnchor = new GPoint(7, 7);
      	    redMed.infoWindowAnchor = new GPoint(7, 7);
		var redLarge = new GIcon(G_DEFAULT_ICON);
        	redLarge.image = "images/University/redLarge.png";
			redLarge.shadow = "";
			redLarge.printShadow ="";
			redLarge.printImage = "images/University/redLarge.png";
			redLarge.mozPrintImage = "images/University/redLarge.png";
			redLarge.iconSize = new GSize(17, 18);
			redLarge.iconAnchor = new GPoint(9, 9);
      	    redLarge.infoWindowAnchor = new GPoint(9, 9);
		var blackMed = new GIcon(G_DEFAULT_ICON);
        	blackMed.image = "images/University/black.png";
			blackMed.shadow = "";
			blackMed.printShadow ="";
			blackMed.printImage = "images/University/black.png";
			blackMed.mozPrintImage = "images/University/black.png";
			blackMed.iconSize = new GSize(14, 15);
			blackMed.iconAnchor = new GPoint(7, 7);
      	    blackMed.infoWindowAnchor = new GPoint(7, 7);
		markerBlackMed = { icon:blackMed };
		markerRedSmall = { icon:redSmall };
		markerRedMed = { icon:redMed };
		markerRedLarge = { icon:redLarge };
		markerBlueSmall = { icon:blueSmall };
		markerBlueMed = { icon:blueMed };
		markerBlueLarge = { icon:blueLarge };
		
function load() {
  if (GBrowserIsCompatible()) {
	// Make sure that SVG is on.
	if(document.implementation.hasFeature(
		"http://www.w3.org/TR/SVG11/feature#SVG","1.1")){ 
	  _mSvgEnabled = true;
	  _mSvgForced  = true;
	}
	map = new GMap2(document.getElementById("map"));
	map.addControl(new GMapTypeControl(), new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(5, 5)));
	map.addControl(new GLargeMapControl(), new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(5, 25)));
    map.enableDoubleClickZoom();
	map.setCenter(new GLatLng(32.79161, -86.82760), 7);
	progressBar = new ProgressbarControl(map, {width:150}); 
	map.enableGoogleBar();

	loadProps();
	myDragStart = GEvent.addListener(map, "dragstart", function() {i = clearProps();});
	myMoveStart = GEvent.addListener(map, "movestart", function() {i = clearProps();});
	myMoveEnd = GEvent.addListener(map, "moveend", function() {i = loadProps();});
	//GEvent.addListener(map, "movestart", function() {
	//	i = clearProps();
	//});
	//GEvent.addListener(map, "moveend", function() {
	//	i = loadProps();
	//});
  }

}

function createMarker(point, name, adminAddr, adminCSZ, website, funding, uSize, lat, lng, uID) {
	if (funding=='Private'){	
		if (uSize==1) {
			markerBlueSmall = { icon:blueSmall,title: name };
			//markerOptions = { icon: markerBlueSmall,title: name }; 
      		var marker = new GMarker(point, markerBlueSmall);
			
	  	} else if (uSize==2) {
			markerBlueMed = { icon:blueMed,title: name };
	  		var marker = new GMarker(point, markerBlueMed);
		} else {
			markerBlueLarge = { icon:blueLarge,title: name };
	  		var marker = new GMarker(point, markerBlueLarge);
	 	}
	} else if(funding=='Public'){
		if (uSize==1) {
			markerRedSmall = { icon:redSmall,title: name };
      		var marker = new GMarker(point, markerRedSmall);
	  	} else if (uSize==2) {
			markerRedMed = { icon:redMed,title: name };
	  		var marker = new GMarker(point, markerRedMed);
		} else {
			markerRedLarge = { icon:redLarge,title: name };
	  		var marker = new GMarker(point, markerRedLarge);
	 	}	
	}else if(funding=='Public 2yr'){
		if (uSize==1) {
			markerRedSmall = { icon:redSmall,title: name };
      		var marker = new GMarker(point, markerRedSmall);
	  	} else if (uSize==2) {
			markerRedMed = { icon:redMed,title: name };
	  		var marker = new GMarker(point, markerRedMed);
		} else {
			markerRedLarge = { icon:redLarge,title: name };
	  		var marker = new GMarker(point, markerRedLarge);
	 	}			
	}else{
		markerBlackMed = { icon:blackMed,title: name };
		var marker = new GMarker(point, markerBlackMed);
	}
		var html = '<Table class="univPU_table"> <tr > <td class="univPU_Header">' + name + '</td> </tr> <tr> <td class="univPU_Address">' + adminAddr + '<br />' + adminCSZ + '</td> </tr></Table>';	
		
		
      GEvent.addListener(marker, 'click', function() {
			GEvent.removeListener(myDragStart);
			GEvent.removeListener(myMoveStart);
			GEvent.removeListener(myMoveEnd);
			//GEvent.removeListener(map, "movestart");
			marker.openInfoWindowHtml(html);
			loadUnivClick(uID);
			setTimeout(myListenersAdd, 1000)
			//GEvent.addListener(map, "dragstart", function() {
			//	i = clearProps();
			//});
			//GEvent.addListener(map, "movestart", function() {
			//	i = clearProps();
			//});
			//GEvent.addListener(map, "moveend", function() {
			//	i = loadProps();
			//});
		  });
      return marker; 
    }
function myListenersAdd(){
	myDragStart = GEvent.addListener(map, "dragstart", function() {i = clearProps();});
	myMoveStart = GEvent.addListener(map, "movestart", function() {i = clearProps();});
	myMoveEnd = GEvent.addListener(map, "moveend", function() {i = loadProps();});
}
	
function loadUniv(){
	hideStartUp();
	var point;
	clearProps();
	var uID = document.getElementById('University').value;
	var searchUrl = 'genXML/UnivCenter_genxml.php?uID=' + uID; 
	//document.getElementById('shInfo').innerHTML = searchUrl;
	GDownloadUrl(searchUrl, function(data) {
	   var xml = GXml.parse(data);
	          var demos = xml.documentElement.getElementsByTagName('demo');
       for (var i = 0; i < demos.length; i++) {
         var cLat = parseFloat(demos[i].getAttribute('lat'));
		 var cLon = parseFloat(demos[i].getAttribute('lon'));
		 map.setCenter(new GLatLng(cLat, cLon), 10);
		 var point = new GLatLng(parseFloat(demos[i].getAttribute('lat')),
								 parseFloat(demos[i].getAttribute('lng')));
		GEvent.trigger(marker[uID], 'click');
	     }
	});
	loadUnivInfo();
	loadProps();
}
function loadUnivClick(uID){
	var point;
	//var uID = document.getElementById('University').value;
	var searchUrl = 'genXML/UnivCenter_genxml.php?uID=' + uID; 
	//document.getElementById('shInfo').innerHTML = searchUrl;
	GDownloadUrl(searchUrl, function(data) {
	   var xml = GXml.parse(data);
	          var demos = xml.documentElement.getElementsByTagName('demo');
       for (var i = 0; i < demos.length; i++) {
         var cLat = parseFloat(demos[i].getAttribute('lat'));
		 var cLon = parseFloat(demos[i].getAttribute('lon'));
		 map.setCenter(new GLatLng(cLat, cLon), 10);
		 var point = new GLatLng(parseFloat(demos[i].getAttribute('lat')),
								 parseFloat(demos[i].getAttribute('lng')));
		 }
	});
	loadUnivInfoClick(uID);
}
function drawUnivDistance(uID, miles, outColor){
	var point;
	//var uID = document.getElementById('University').value;
	var searchUrl = 'genXML/UnivCenter_genxml.php?uID=' + uID; 
	//document.getElementById('shInfo').innerHTML = searchUrl;
	GDownloadUrl(searchUrl, function(data) {
	   var xml = GXml.parse(data);
	          var demos = xml.documentElement.getElementsByTagName('demo');
       for (var i = 0; i < demos.length; i++) {
         var cLat = parseFloat(demos[i].getAttribute('lat'));
		 var cLon = parseFloat(demos[i].getAttribute('lon'));
		 //map.setCenter(new GLatLng(cLat, cLon), 11);
		 var point = new GLatLng(parseFloat(demos[i].getAttribute('lat')),
								 parseFloat(demos[i].getAttribute('lng')));
		 drawCircle(new GLatLng(cLat, cLon), (miles * 1.609), 60, outColor);
		 //drawCircle(new GLatLng(cLat, cLon), (5 * 1.609), 90, '#f60');
		 //GEvent.trigger(new GLatLng(cLat, cLon), 'click');
	     }
	});	
}
	

function loadDivLayer(url, dName)
{
divName = dName;

xmlhttp=null;

if (window.XMLHttpRequest)
  {// code for Firefox, Opera, IE7, etc.
  xmlhttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
if (xmlhttp!=null)
  {
  xmlhttp.onreadystatechange=state_Change;
  xmlhttp.open("GET",url,true);
  xmlhttp.send(null);
  }
else
  {
  alert("Your browser does not support XMLHTTP.");
  }
}

function state_Change()
{
if (xmlhttp.readyState==4)
  {// 4 = "loaded"
  if (xmlhttp.status==200)
    {// 200 = "OK"
    document.getElementById(divName).innerHTML=xmlhttp.responseText;
    }
  else
    {
    alert("Problem retrieving data:" + xmlhttp.statusText);
    }
  }
return;
}

function loadUnivInfo(){
	var uID = document.getElementById('University').value
	loadDivLayer('UniversityInfoDiv.php?uID=' + uID, 'shInfo');
}
function loadUnivInfoClick(uID){
	//var uID = document.getElementById('University').value
	loadDivLayer('UniversityInfoDiv.php?uID=' + uID, 'shInfo');
}
function loadUnivList(){
		map.clearOverlays();
	//loadProps();
	var stName = document.getElementById('uState').value
	var caller = loadDivLayer('genXML/UnivListByState.php?stAbbrv=' + stName, 'universityList');
	var searchUrl = 'genXML/UnivStateCenter_genxml.php?state=' + stName; 
	//document.getElementById('shInfo').innerHTML = searchUrl;
	GDownloadUrl(searchUrl, function(data) {
	   var xml = GXml.parse(data);
	          var demos = xml.documentElement.getElementsByTagName('demo');
       for (var i = 0; i < demos.length; i++) {
         var cLat = parseFloat(demos[i].getAttribute('lat'));
		 var cLon = parseFloat(demos[i].getAttribute('lon'));
		 map.setCenter(new GLatLng(cLat, cLon), 7);
	     }
	});
}
function loadUnivListInit(){
	var stName = document.getElementById('uState').value
	var caller = loadDivLayer('genXML/UnivListByState.php?stAbbrv=' + stName, 'universityList');
}

function drawCircle(center, radius, nodes, liColor, liWidth) {
	var bounds = new GLatLngBounds();
	var latConv = center.distanceFrom(new GLatLng(center.lat()+0.1, center.lng()))/100;
	var lngConv = center.distanceFrom(new GLatLng(center.lat(), center.lng()+0.1))/100;
	var points = [];
	var step = parseInt(360/nodes)||10;
	for(var i=0; i<=360; i+=step)
	{
		var pint = new GLatLng(center.lat() + (radius/latConv * Math.cos(i * Math.PI/180)), center.lng() + 
		(radius/lngConv * Math.sin(i * Math.PI/180)));
		points.push(pint);
		bounds.extend(pint); 
	}
	//	fillColor = fillColor||liColor||"#0055ff";
	//liColor - liColor||"#0055ff";
	liWidth = liWidth||3;
	//	var poly = new GPolygon(points,liColor,liWidth,liOpa,fillColor,fillOpa);
	var poly = new GPolyline(points,liColor,3,.8);
	map.addOverlay(poly);
}

function vwbAddDriveTime(inID, insideColor, borderColor, qName, qArea) {
		var searchUrl = 'genXML/UnivPoly_genxml.php?inID=' + inID;
		GDownloadUrl(searchUrl, function(data) {
		   var xml = GXml.parse(data);
		   var points = xml.documentElement.getElementsByTagName('cPoint');
		   //var qctList = document.getElementById('qctList');
		   var gpoint = new Array(0);
			  for (var i = 0; i < points.length; i++) {
				  gpoint[i]= new GLatLng(parseFloat(points[i].getAttribute('pLat')), parseFloat(points[i].getAttribute('pLon')));
			  }
			var polylineEncoder = new PolylineEncoder();
			polyline[inID] = polylineEncoder.dpEncodeToGPolygon([gpoint],borderColor, 3, 0.8,insideColor, 0.5, true, true); 
			map.addOverlay(polyline[inID]);
			GEvent.addListener(polyline[inID], "click", function(latlng){
				map.openInfoWindow(latlng, qName + '<br>: ' + qArea + ' drive time');
			});
		});
	}
	
//new
function testReset(){
 var i = clearProps();
 i = loadProps();
}

function resetMap(){
	map.clearOverlays();
	loadProps();
}

function clearProps(){
	mapbounds=map.getBounds();
		var mapne=mapbounds.getNorthEast();
		var mapsw=mapbounds.getSouthWest();
		var mapSWLat=mapsw.lat();
		var mapSWLng=mapsw.lng();
		var mapNELat=mapne.lat();
		var mapNELng=mapne.lng();
		
		var searchUrl = "genXML/Univ_genxml2.php?nelat="+mapNELat+"&nelng="+mapNELng+"&swlat="+mapSWLat+"&swlng="+mapSWLng;
	GDownloadUrl(searchUrl, function(data) {
	   var xml = GXml.parse(data);
	   var markers = xml.documentElement.getElementsByTagName('marker');
       var bounds = new GLatLngBounds();
	   for (var i = 0; i < markers.length; i++) {
		 var uID = markers[i].getAttribute('id');
		 map.removeOverlay(marker[uID]);
		}

	});	
}

function loadProps(){
		progressBar.start(775);
		//var marker = new Array();
		mapbounds=map.getBounds();
		var mapne=mapbounds.getNorthEast();
		var mapsw=mapbounds.getSouthWest();
		var mapSWLat=mapsw.lat();
		var mapSWLng=mapsw.lng();
		var mapNELat=mapne.lat();
		var mapNELng=mapne.lng();
		var searchUrl = "genXML/Univ_genxml2.php?nelat="+mapNELat+"&nelng="+mapNELng+"&swlat="+mapSWLat+"&swlng="+mapSWLng;
		//alert (searchUrl);
	GDownloadUrl(searchUrl, function(data) {
	   var xml = GXml.parse(data);
	   var markers = xml.documentElement.getElementsByTagName('marker');
       var bounds = new GLatLngBounds();
	   for (var i = 0; i < markers.length; i++) {
		 var name = markers[i].getAttribute('name');
		 var adminAddr = markers[i].getAttribute('adminAddr');
		 var adminCSZ = markers[i].getAttribute('adminCSZ');
		// var distance = parseFloat(markers[i].getAttribute('distance'));
		 var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
								 parseFloat(markers[i].getAttribute('lng')));
		 var funding = markers[i].getAttribute('funding');
		 var website = markers[i].getAttribute('website');
		 var uSize = markers[i].getAttribute('uSize');
		 var uID = markers[i].getAttribute('id');
		 var lat = parseFloat(markers[i].getAttribute('lat'));
		 var lng = parseFloat(markers[i].getAttribute('lng'));
		 marker[uID] = createMarker(point, name, adminAddr, adminCSZ, website, funding, uSize, lat, lng, uID);
		 map.addOverlay(marker[uID]);
		 progressBar.updateLoader(1);
		}
	  // map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
	});
	progressBar.remove();

	//cut here
		
	// end cut	
	
}
	
function hideStartUp(){
	document.getElementById('shIntroDiv').style.visibility='hidden';
}

function redirectLogin(){
var m = alert('Please log-in to use this free tool');
var w = document.open('../vwbLogin.php?accesscheck=studentHousing/UniversityMap.php', '_self','');
}	