var curMap = "";
if(!locations) var locations = new Array();

function $(id) { return document.getElementById(id); }

function mark(id,elm) {
	elm.parentNode.parentNode.setAttribute("class","item done");
	elm.parentNode.innerHTML="Done.";
	var myAjax = new AjaxMe();
	myAjax.open("GET","ajax.php?mark="+id,true);
	myAjax.send(null);
}

function searchFor(term) {
	var elms = document.getElementById('list').getElementsByTagName('div');
	for(var i=0;i<elms.length;i++) {
		if(elms[i].childNodes[0].innerHTML.toLowerCase().indexOf(term.toLowerCase())<0 && elms[i].childNodes[4].innerHTML.toLowerCase().indexOf(term.toLowerCase())<0) {
			elms[i].style.display="none";
		}
		else elms[i].style.display="";
	}
}

function openInfo(id) {
	var foundMarker = markers[id];
	if(messages[id]) {
		map.openInfoWindowHtml(foundMarker.getPoint(),messages[id]);
		return;
	}
	var myAjax = new AjaxMe();
	var url = "ajax.php?getInfo&id="+foundMarker.title;
	myAjax.open("GET",url,true);
	myAjax.onreadystatechange=function() {
		if(myAjax.readyState==4 || myAjax.readyState=="complete") {
			map.openInfoWindowHtml(foundMarker.getPoint(),myAjax.responseText);
			messages[id] = myAjax.responseText;
		}
	}
	myAjax.send(null);
}

function addMarker(map, latlon, id,arrayPlace) {
	var temp = latlon.split(",");
	var point = new GLatLng(temp[0], temp[1]);
	var marker = new GMarker(point);
	marker.title = id;
	markers[markers.length] = marker;
	
	GEvent.addListener(marker, "click", function() {
		openInfo(arrayPlace);
	});
	return marker;
}

function openOnMap(id) {
	for (var i = 0; i < markers.length; i++) {
		if (markers[i].title == id) {
			foundMarker = markers[i];
			receiveReq = getXmlHttpRequestObject();
			if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		                receiveReq.open("GET", 'ajax.php?id='+id, true);
		                receiveReq.onreadystatechange = function() {
		                        if (receiveReq.readyState == 4) {
		                                var myHtml = receiveReq.responseText;
		                                map.openInfoWindowHtml(foundMarker.getPoint(), myHtml);
		                        }
		                }
		                receiveReq.send(null);
		        }
		}
	}
}

function initialize() {
	if (GBrowserIsCompatible()) {
		var crossLayer = new GTileLayer(new GCopyrightCollection(""), 0, 15);
        crossLayer.getTileUrl =  function(tile, zoom) {
          return "./include/tile_crosshairs.png";
        }
        crossLayer.isPng = function() {return true;}

        // Create a new map type incorporating the tile layer
        var layerTerCross = [ G_PHYSICAL_MAP.getTileLayers()[0],
                              crossLayer ];
        var mtTerCross = new GMapType(layerTerCross,
                                      G_PHYSICAL_MAP.getProjection(), "Ter+");

        map = new GMap2(document.getElementById("map"));
		map.setCenter(new GLatLng(37.4419, -122.1419), 13);
        map.addMapType(G_PHYSICAL_MAP);
        map.addMapType(mtTerCross);
        map.addControl(new GLargeMapControl())

        var mapControl = new GHierarchicalMapTypeControl();
        
        function createMarker(latlng, number) {
		  var marker = new GMarker(latlng);
		  marker.value = number;
		  GEvent.addListener(marker,"click", function() {
			var myHtml = message[number -1];
			map.openInfoWindowHtml(latlng, myHtml);
		  });
		  return marker;
		}
    }
	var bounds = map.getBounds();
	var southWest = bounds.getSouthWest();
	var northEast = bounds.getNorthEast();
	var lngSpan = northEast.lng() - southWest.lng();
	var latSpan = northEast.lat() - southWest.lat();
	resizeMe();
}

function setupPlaceholders() {
	var inputs = $('body').getElementsByTagName('input');
	for(i=0;i<inputs.length;i++) {
		if(inputs[i].type=="text") {
			inputs[i].setAttribute("onfocus","focusSearch(this)");
			inputs[i].setAttribute("onblur","blurSearch(this)");
			if(inputs[i].hasAttribute("placeholder")) {
				inputs[i].className="placehold";
				inputs[i].value = inputs[i].getAttribute("placeholder");
			}
		}
	}
}

function focusSearch(elm) {
	if(elm.hasAttribute("placeholder") && (elm.value==elm.getAttribute('placeholder'))) {
		elm.value='';
		elm.className='';
	}
	editing=true;
}

function blurSearch(elm) {
	if(elm.hasAttribute("placeholder") && elm.value=="") {
		elm.value=elm.getAttribute('placeholder');
		elm.className='placehold';
	}
	editing=false;
}

function AjaxIt(url,id,postfunc) {
	var myAjax = new AjaxMe();
	myAjax.open("GET",url,true);
	myAjax.onreadystatechange=function() {
		if(myAjax.readyState==4 || myAjax.readyState=="complete") {
			if(myAjax.responseText) {
				if(id) {
					ge(id).innerHTML=myAjax.responseText;
					evalScripts(id);
				}
			}
			if(postfunc) eval(postfunc+"(myAjax.responseText)");
			return;
		}
	}
	myAjax.send(null);
}

function sendMsg(url,params,postfunc) {
	myAjax = new AjaxMe();
	myAjax.onreadystatechange = function() {
        if (myAjax.readyState == 4) {
            if(postfunc) eval(postfunc+"("+myAjax+")");
        }
    }
  	myAjax.open('POST', url, true);
  	myAjax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
  	var s = "";
  	for(var i in params) {
  		s+=i+"='"+params[i]+"',";
  	}
  	s = s.substring(0,s.length-1);
  	myAjax.send('params=' + encodeURIComponent(s));
}

function AjaxMe() {
	var xmlHttp=null;
	try {
 		xmlHttp=new XMLHttpRequest();
 	}
	catch (e) {
	 try {
	 		xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
 	}
	return xmlHttp;
}

function resizeMe() {
	var y = xClientHeight();
	var x = xClientWidth();
	$('list').style.height=(y-100)+"px";
	$('map').style.width=(x-332)+"px";
	$('map').style.height=(y-80)+"px";
}