var tempMarker = null;
var map;
var geocoder;

function LogUserType(ev, oInput, targetDIVID)	{
	var keyCode = ev.keyCode ? ev.keyCode : ev.which ? ev.which : ev.charCode;
	if (keyCode == 13) {
		return;
	}
  
  obj = XHG_dropDown;
	if (obj.readyState == 4 || obj.readyState == 0) {
    var searchDIV = document.getElementById(targetDIVID);
    searchDIV.style.visibility = 'visible';
    var oTable = searchDIV.childNodes[0]; 
    userAddLocTableDelRecords(oTable, 0);
		url = XML_url;
		url += '?cmd=user_location_data-get' + '&keyword=' + escape(oInput.value) + '&what=' + oInput.id + '&cid=' + userLocation_cid + '&hash=' + GetUniqueVal();
		obj.open('GET', url, true);
		//log(url)
		//return;
		obj.onreadystatechange = function ()	{
			if (obj.readyState == 4) {
        var xmldoc = obj.responseXML;
        var recAr = GetXMLValue(xmldoc.getElementsByTagName('dataSTR')).split('|');
        var recKAr = GetXMLValue(xmldoc.getElementsByTagName('dataKeys')).split('|');
        var recNo = parseInt(GetXMLValue(xmldoc.getElementsByTagName('dataCount')));
        for (i=0;i<recAr.length;i++) {
          userAddLocTableAddRecord(oTable, i, recAr[i], 1, [searchDIV, oInput, recKAr[i]]);
        }
			}
		}; 
		obj.send(null);
	}

}

function userAddLocTableDelRecords(oTable, start)	{
	if (oTable.rows.length > start)	{
		for (j2=start;j2<oTable.rows.length;j2++)	{
			oTable.rows[j2].style.display = 'none';
		}	
	}
}

function userAddLocTableAddRecord(oTable, rowPos, recStr, recType, oP)  {
  var oTR = oTable.insertRow(rowPos);
  var oTD = oTR.insertCell(0);
  oTD.innerHTML = recStr;
  oTD.className = 'searchCity';
  if (recType == 1) {
    oTR.onmouseover = function()	{
      oTR.className = 'searchMouseOver';
  	}
  	oTR.onmouseout = function()	{
      oTR.className = 'searchMouseOut';
  	}
    oTR.onclick = function()	{
      var searchDIV = oP[0];
      searchDIV.style.visibility = 'hidden';
      var oInput = oP[1];
      oInput.value = oTD.innerHTML;
      if (oInput.id == 'userPlaats')  {
        userLocation_cid = parseInt(oP[2]);
      }
      if (oInput.id == 'userStraat')  {
        userLocation_sid = parseInt(oP[2]);
        GeoLocateUserInput();
      }
  	}  
  }
  if (recType == 2) {
    oTR.className = 'searchStatsDown';
  }
}

function log(text)  {
  GLog.write(text);
}

function GeoLocateUserInput() {
  var locationCity = document.getElementById('userPlaats').value;
  var locationStreet = document.getElementById('userStraat').value;
  var myAddress = locationStreet + ', ' + locationCity + ', Netherlands';
  var oBODY = document.getElementById('oBODY');
  map = oBODY.gMAP;
  if (!tempMarker)  {
    geocoder = new GClientGeocoder();
    tempMarker = new GMarker(map.getCenter(), {draggable : false});
    map.addOverlay(tempMarker);
    map.setZoom(16);
  } 
  geocoder.getLocations(myAddress, function(response) {
    if (!response || response.Status.code != 200) {
    } 
    else {
      var place = response.Placemark[0];
      var point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
      tempMarker.setPoint(point);
      map.panTo(point);
    }
  });
}

function userAddLocSAVE(triggerOBJ) {
  if (!userLocation_sid)  {
    alert('Please select a street !');
    //return;
  }
  //triggerOBJ.disabled = true; 
  
  obj = XHG_dropDown;
	if (obj.readyState == 4 || obj.readyState == 0) {
		url = XML_url;
		url += '?cmd=user_location_data-save&mid=' + mID + '&cid=' + userLocation_cid + '&sid=' + userLocation_sid + '&sx=' + tempMarker.getPoint().lng() + '&sy=' + tempMarker.getPoint().lat() + '&url_referer=' + escape(document.location) + '&hash=' + GetUniqueVal();
		obj.open('GET', url, true);
		//log(url)
		//return;
		obj.onreadystatechange = function ()	{
			if (obj.readyState == 4) {
        var xmldoc = obj.responseXML;
        var errID = parseInt(GetXMLValue(xmldoc.getElementsByTagName('errID')));
        if (errID)  {
          alert(GetXMLValue(xmldoc.getElementsByTagName('errSTR')));
        }
        else  {
          var oTD = triggerOBJ.parentNode;
          oTD.innerHTML = 'Dank voor uw hulp!';
        }
			}
		}; 
		obj.send(null);
	}
}

function userAddLocShow(sX, sY) {
  var oBODY = document.getElementById('oBODY');
  map = oBODY.gMAP;
  if (!tempMarker)  {
    geocoder = new GClientGeocoder();
    tempMarker = new GMarker(new GLatLng(0,0), {draggable : false});
    map.addOverlay(tempMarker);
  }
  tempMarker.setPoint(new GLatLng(parseFloat(sY),parseFloat(sX)));
  map.setCenter(tempMarker.getPoint());
  map.setZoom(16);
}

function userAddLocSelect(mid,sid) {
  var userConfirm = confirm('Are you sure ?');
  if (!userConfirm) {
    return;
  }

  obj = XHG_dropDown;
	if (obj.readyState == 4 || obj.readyState == 0) {
		url = XML_url;
		url += '?cmd=user_location_data-edit&mid=' + mid + '&sid=' + sid + '&hash=' + GetUniqueVal();
		obj.open('GET', url, true);
		//log(url)
		//return;
		obj.onreadystatechange = function ()	{
			if (obj.readyState == 4) {
        document.location = document.location;
			}
		}; 
		obj.send(null);
	}
}
