var AJAX = null;

function getData() {  
   if (document.getElementById('lastName').value.length < 3)
   { return; }
   
   // We set the coordinates of the combo-box so that it's close to the user field
   var coords = getXYpos(document.getElementById('lastName'));
   document.getElementById('divHelp').style.left = coords.x+200+'px';
   document.getElementById('divHelp').style.top  = coords.y+20+'px';
   document.getElementById('divHelp').style.position='absolute';

   var last_name = document.getElementById('lastName').value;
      
   // We launch "ProxyAjax.php" in order to allow the cross-domain ajax call to the EGD script "GetPlayerDataByData.php"
   // the function "AjaxGet" has 3 parameters: (url, GET data, callback function) 
   AjaxGet("egd_fillin/proxy.php", {'query':"lastname="+last_name},
              function (data) 
			  {  
	             document.getElementById('searching').style.display = 'none';
	   			 if (data.retcode != 'Ok')
			     {  document.getElementById('divHelp').style.display = 'none';
					return;
			     }
				 else
				 {  if (data.players.length == 0)
				    {  document.getElementById('divHelp').style.display = 'none';
					   return;
					}
					document.getElementById('divHelp').style.display = 'block';
					var value     = new Object;
				    var recordset = data.players;
					while (document.getElementById('helpTable_last_name').rows.length > 0)
					{   document.getElementById('helpTable_last_name').deleteRow(0);
					}
					
					// for every row of the returned recordset, we populate the combo-box
					for (var i=0; i<recordset.length; i++)
					{  line = recordset[i];
					   newRow = document.getElementById('helpTable_last_name').insertRow(i);
					   newRow.id = 'helpTR_'+i;
					   value[newRow.id]     = line;
					   newRow.onmouseover = function() { this.style.backgroundColor = '#ffff00';};
					   newRow.onmouseout  = function() { this.style.backgroundColor = '';};
					   // when the combo's row is clicked, we populate the form's fields (including the photo)
					   newRow.onclick  = function() 
					                     { document.getElementById('lastName').value = value[this.id].Last_Name;
										   document.getElementById('firstName').value      = value[this.id].Name;
										   //document.getElementById('pin').value       = value[this.id].Pin_Player;
										   //document.getElementById('gor').value       = value[this.id].Gor;
										   document.getElementById('country').value   = value[this.id].Country_Code;
										   document.getElementById('city').value      = value[this.id].Club;
										   document.getElementById('divHelp').style.display = 'none';
										   
										   var grade = value[this.id].Grade;										   
										   switch (grade.charAt(grade.length - 1)) {
										   case 'k':
											   document.getElementById('level').value  = parseInt(grade);
											   document.getElementById('levelType').value  = 'Kyu';
											   break;
										   case 'd':
											   document.getElementById('level').value  = parseInt(grade);
											   document.getElementById('levelType').value  = 'Dan';
											   break;
										   }										   
										 }; 
					   
					   var newCell = newRow.insertCell(0);
                       var x_field = line['Last_Name'].toUpperCase();
					   var x_start = x_field.indexOf(last_name.toUpperCase());
					   var y_field = line['Last_Name'];
					   if (x_start >= 0) 
					   {  y_field = y_field.substring(0,x_start)+'<b>'
					               +y_field.substring(x_start,x_start+last_name.length)+'</b>'
								   +y_field.substring(x_start+last_name.length);
					   }
					   newCell.innerHTML = y_field;
					   
					   var newCell = newRow.insertCell(1);
                       newCell.innerHTML = line['Name'];
					   
					   var newCell = newRow.insertCell(2);
                       newCell.innerHTML = line['Club'];
					   
					   var newCell = newRow.insertCell(3);
                       newCell.innerHTML = line['Country_Code'];
					   
					   var newCell = newRow.insertCell(4);
                       newCell.innerHTML = line['Grade'];
					   
					}
				 }
			  }
		);
   
   document.getElementById("searchname").innerHTML = last_name;
   document.getElementById('searching').style.display = 'block';

}

function AjaxGet(url, data, callback)
{   var queryString = "";
    var n=0;
	for (i in data)
	{  if (n++>0)
	   {  queryString += "&";
	   }
	   else
	   {  queryString += "?";
	   }
	   queryString += i+"="+data[i];
	}
	
    if (!AJAX) {
    	if (window.XMLHttpRequest) AJAX = new XMLHttpRequest();
    	else AJAX = new ActiveXObject("Microsoft.XMLHTTP");
    } else if (AJAX.readyState != 0) {
    	AJAX.abort();
    }
    
    AJAX.onreadystatechange = function () {
	     if (AJAX.readyState == 4 && AJAX.status == 200) 
		 {  var data = eval('(' + AJAX.responseText + ')');
			callback(data);
		 }
   }
      
   AJAX.open("GET", url+queryString, true);
   AJAX.send(null);
}

// Just to get the coords of an element on screen...
function getXYpos(elem) {
   if (!elem) {
      return {"x":0,"y":0};
   }
   if (getStyle(elem,'position') == 'relative')  var xy={"x":0,"y":0}
   else                                          var xy={"x":elem.offsetLeft,"y":elem.offsetTop}
   var par=getXYpos(elem.offsetParent);
   {   for (var key in par) {
           xy[key]+=par[key];
	   }
   }
   return xy;
}


// get a style attribute
function getStyle(el,styleProp)
{   var x = el;
	if (x.currentStyle)
		var y = x.currentStyle[styleProp];
	else if (window.getComputedStyle)
		var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
	return y;
}
