// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

/* For Google Maps
 * Parse the page to get all the geo classed coordinates and map them.
 */
var myRotator = parseInt(5);
var map;
var school = 'high';

function load() {
	if (typeof(GBrowserIsCompatible) != 'undefined') loadmapFu();
}

function loadmapFu(){
   if (GBrowserIsCompatible()) {
      map = new GMap2(document.getElementById("google_map"));
      map.addControl(new GSmallMapControl());
      map.setCenter(new GLatLng(26.125234,-80.150499), 10);

      var points = getElementsByClass("geo");

      var markers = new Array();   
      var i;
      for (i = 0; i < points.length; i++) { 
	   	coords = points[i].getElementsByTagName('span');
			var address = points[i].parentNode.getElementsByTagName('h4')[0].innerHTML;
			markers[i] = new GMarker(new GLatLng(coords[0].innerHTML, coords[1].innerHTML), {title: address});
			
			el = points[i].parentNode;
			elc = el.getElementsByTagName('p');
			for (p = 0; p < elc.length; p++) {
			    el.removeChild(elc[p]);
			}
				markers[i].myBalloon = directionsLink(el).innerHTML;
			   GEvent.addListener(markers[i], 'click', function(){
			      this.openInfoWindowHtml('<div class="hcard">' + this.myBalloon + '</div>', {maxWidth: 200});
			   });
			   map.addOverlay(markers[i]);
		}
	}
}

function directionsLink(hcard) {
	streetAddress = getElementsByClass('street-address',hcard)[0].innerHTML.replace(' ','+');
	locality = getElementsByClass('locality',hcard)[0].innerHTML.replace(' ','+');
	postalCode = getElementsByClass('postal-code',hcard)[0].innerHTML.replace(' ','+');
	try {
	   directions = document.createElement("<a href=\"http://maps.google.com/maps?f=d&daddr="+streetAddress+","+locality+",Florida"+postal-code+">Get Directions</a>");
	} catch (e) {
		directions = document.createElement('a');	
		directions.setAttribute('href','http://maps.google.com/maps?f=d&daddr='+streetAddress+','+locality+',+Florida');
		directions.innerHTML = 'Get Directions';
	}	
	hcard.appendChild(directions);
	return hcard;
}

function simpleDirectionsLink(school){
	schoolname = school.split('<br \/>');
	var address;
	for (i = 1; i < schoolname.length; i++){
		address += schoolname[i];
	}
	address = address.replace('undefined','');
	address = address.replace(/<br \/>/g,',');
	address = address.replace(/ /g,'+');
	directions = "<br /><a href=\"http://maps.google.com/maps?f=d&daddr="+address+"\">Get Directions</a>";
	return directions;
}

function rotateHome(){
	setTimeout('changeBG(school)', 4000);
}
function changeBG(school){
	myRotator++;
	tmpRotator = myRotator % 2 + 1;
	document.getElementById('elementary').style.backgroundImage="url(/images/homepage-rotation/elementary/kid_yellow"+tmpRotator + ".jpg)";
	rotateHome();
}

function rotateHome2(){
	setTimeout('changeBG2(school)', 5000);
}
function changeBG2(school){
	myRotator++;
	tmpRotator = myRotator % 2 + 1;
	document.getElementById('middle').style.backgroundImage="url(/images/homepage-rotation/middle/kid_pink"+tmpRotator + ".jpg)";
	rotateHome2();
}

function rotateHome3(){
	setTimeout('changeBG3(school)', 6000);
}
function changeBG3(school){
	myRotator++;
	tmpRotator = myRotator % 2 + 1;
	document.getElementById('high').style.backgroundImage="url(/images/homepage-rotation/high/kid_red"+tmpRotator+".jpg)";
	rotateHome3();
}



function plotPoint(lat, lon, school){
   schoolname = school.split('<br />', 1);
	myDirections = simpleDirectionsLink(school);
	marker = new GMarker(new GLatLng(lat, lon), {title: schoolname[0]});
	marker.myAddress = school;
	GEvent.addListener(marker, 'click', function(){
	   this.openInfoWindowHtml('<div>' + this.myAddress + myDirections + '</div>', {maxWidth: 200});
	});
   map.setCenter(new GLatLng(lat, lon), 10);
	map.addOverlay(marker);	
}

function getElementsByClass(searchClass,node,tag) {
  var classElements = new Array();
  if (node == null)
    node = document;
  if (tag == null)
    tag = '*';
  var els = node.getElementsByTagName(tag);
  var elsLen = els.length;
  var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
  for (i = 0, j = 0; i < elsLen; i++) {
    if (pattern.test(els[i].className) ) {
      classElements[j] = els[i];
      j++;
    }
  }
  return classElements;
}

/* Removing this because IE doesn't play nice, and there's no reason to load it twice
 * window.addEventListener('load', load, false);
 */
if (typeof(GUnload) != 'undefined') window.addEventListener('unload', GUnload, false);
