// JavaScript Document
function addEvent(obj, evType, fn){ 
 if (obj.addEventListener){ 
   obj.addEventListener(evType, fn, false); 
   return true; 
 } else if (obj.attachEvent){ 
   var r = obj.attachEvent("on"+evType, fn); 
   return r; 
 } else { 
   return false; 
 } 
}

addEvent(window,'load',geo);

var geocoder = new GClientGeocoder();
var resultsTable;
var crow;

function geo() {
	var geoButton;
	if(document.getElementsByTagName("p")[1].innerHTML.indexOf('NULL Long Lat') == -1) return;
	for(var i = 0; i < document.getElementsByClassName("snlink").length; i++) {
		if(document.getElementsByClassName("snlink")[i].innerHTML.indexOf("Next") > -1) {
			geoButton = document.createElement('A');
			geoButton.className = 'snlink';
			geoButton.style.backgroundColor = 'red';
			geoButton.style.color = 'white';
			geoButton.style.fontWeight = 'bold';
			geoButton.innerHTML = 'GEOCODE';
			geoButton.href = '#';
			geoButton.onclick = function() { doGeo(1); }
			
			document.getElementsByClassName("snlink")[i].style.marginRight = '5px';
			document.getElementsByClassName("snlink")[i].parentNode.appendChild(geoButton);
		 }
	}
	resultsTable = document.getElementsByTagName('table')[3];
	x = resultsTable.rows[0].insertCell(3); x.className = 'fieldnameback'; x.innerHTML = '<span class=fieldname><b>Edit</b></span>';
	x = resultsTable.rows[0].insertCell(4); x.className = 'fieldnameback'; x.innerHTML = '<span class=fieldname><b>GEOCODE Status</b></span>';	
	for(var i = 1; i < resultsTable.rows.length; i++) {
		x = resultsTable.rows[i].insertCell(3); x.className = 'databack'; x.innerHTML = '<span class=normal><a href="/admin/editplace.php?ID='+resultsTable.rows[i].cells[1].firstChild.innerHTML.replace('&nbsp;','')+'" target=_newwin><img border=0 src=/admin/tng_edit.gif></a></span>';
		x = resultsTable.rows[i].insertCell(4); x.className = 'databack'; x.innerHTML = '<span class=normal>Not Done</span>';
	}
}

function doGeo(ind) {
	if(resultsTable.rows.length < ind+1) return;
	crow = resultsTable.rows[ind];
	geocoder.getLatLng(crow.cells[2].firstChild.innerHTML,
		function(point) {
			if(!point) crow.cells[4].firstChild.innerHTML = 'Address not found';
			else {
				crow.cells[4].firstChild.innerHTML = point.lat()+', '+point.lng();
				params = $H({latitude:point.lat(),longitude:point.lng(),id:crow.cells[1].firstChild.innerHTML.replace('&nbsp;','')}).toQueryString();
				new Ajax.Request('admin/geocodeajax.php',{
					parameters:params,
					onSuccess:function(req){
						crow.cells[4].firstChild.innerHTML += '<span style="color: red;"> ...Changes Applied</span>';
					}
				});
			}
			doGeo(ind+1);
		}
	);
	return false;
}

