/******************************************************************************/
// Create xmlhttp object based on browsertype
function getHTTPObject() {
  var xmlhttp;
  /*@cc_on
  @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }
  @else
  xmlhttp = false;
  @end @*/
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
	  xmlhttp.overrideMimeType("text/xml"); 
    } catch (e) {
      xmlhttp = false;
    }
  }
  return xmlhttp;
}
/****** INIT APPLICATION VARIABLES ***********************/
var MemberHttp = getHTTPObject();
var MemberBusy = false;

/******* APPLICATION FUNCTIONS ****************************************/
function getMembers(offset)
{
	if (!MemberBusy)
	{
		var firstName = document.getElementById('firstName').value;
		var lastName = document.getElementById('lastName').value;
		var lodge = document.getElementById('lodge').value;
		var city = document.getElementById('city').value;
		var url = "/ibbproxy.php?page=member/getMembers.php&firstName=" + firstName + '&lastName=' + lastName + '&lodge=' + lodge + '&city=' + city;
		if (offset>0) {
			url += '&offset=' + offset;
		}
		//alert(url);		
		MemberHttp.open("GET", url, true);
		MemberHttp.onreadystatechange = MembersResponse;
		MemberBusy = true;
		MemberHttp.send(null);
	}
}

function MembersResponse()
{
	if (MemberHttp.readyState == 4)
	{
		if (MemberHttp.responseText.indexOf('invalid') == -1)
		{
			try
			{
				var xmlResults = MemberHttp.responseXML;
				var root = xmlResults.getElementsByTagName('members')[0];
				var member_count = parseInt(root.getAttribute("count"));
				var member_offset = parseInt(root.getAttribute("offset"));
				var member_limit = parseInt(root.getAttribute("limit"));
				var members = root.getElementsByTagName('member');
				var output = '';
				//alert(members);
				//alert( "Count: " + member_count );

				output += '<table class="data">';
				output += '<tr><th>Name</th><th>Lodge</th><th>City</th><th>State/<br>Prov.</th><th>Email Address</th></tr>';
				// Create table rows for each record

				for (var i=0; i < members.length; i++)
				{
					output += '<tr onclick="javascript:window.open(\'mailto:' + xmlResults.getElementsByTagName('email').item(i).firstChild.data + '\',\'_parent\')" class="emailoff" ';
					output += 'onmouseover="this.className=\'emailon\';" onmouseout="this.className=\'emailoff\';">';
					output += '<td>';
					output += xmlResults.getElementsByTagName('last').item(i).firstChild.data+', ';
					output += xmlResults.getElementsByTagName('first').item(i).firstChild.data+' ';
					if (xmlResults.getElementsByTagName('mi').item(i).childNodes.length>0) {
						output += ' '+xmlResults.getElementsByTagName('mi').item(i).firstChild.data;
					}
					if (xmlResults.getElementsByTagName('nick').item(i).childNodes.length>0)
					{
						output += ' ('+xmlResults.getElementsByTagName('nick').item(i).firstChild.data+')';
					}
					output += '</td><td>';
					if (xmlResults.getElementsByTagName('lodge').item(i).childNodes.length>0)
					{
						output += xmlResults.getElementsByTagName('lodge').item(i).firstChild.data;
					}
					output += '</td><td>';
					if (xmlResults.getElementsByTagName('city').item(i).childNodes.length>0)
					{
						output += xmlResults.getElementsByTagName('city').item(i).firstChild.data;
					}
					output += '</td><td>';
					if (xmlResults.getElementsByTagName('stateprov').item(i).childNodes.length>0)
					{
						output += xmlResults.getElementsByTagName('stateprov').item(i).firstChild.data;
					}
					output += '</td><td>';
					if (xmlResults.getElementsByTagName('email').item(i).childNodes.length>0)
					{
						output += xmlResults.getElementsByTagName('email').item(i).firstChild.data;
					}
					output += '</td></tr>';
				}

				output += '<tr><td colspan="8" style="background: white; padding: 3px;text-align: center; font-weight: bold">';

				if (member_offset > 0) {
					var prev = member_offset - member_limit;
					output += '<a href="javascript:getMembers(' + prev + ');" style="background-color: #369; color: white; padding: 3px 5px; margin: 1px">&lt;</a>&nbsp;';
				}
			

			if (member_count > 0) {
				var first = member_offset + 1;
				var last = member_offset + member_limit;
				if (last > member_count) { last = member_count };
				output += first + '-' + last + ' of ' + member_count;
			} else {
				output += 'No';
			}

				output += ' matching members';

				if (last < member_count) {
					output += '&nbsp;<a href="javascript:getMembers(' + last + ');" style="background-color: #369; color: white; padding: 3px 5px; margin: 1px;">&gt;</a>';
				}

				output += '</td></tr></table>';

				document.getElementById('custHist').innerHTML = output;
				MemberBusy = false;
			}
			catch(e)
			{
				alert("Please report this error to the network admin: " + e) ;
			}
		}
	}
}
/******************************************************************/
function getData(event)
{
	// Only get data when alphanumeric key is pressed
	if ( (event.keyCode >= 48 && event.keyCode <= 57) || // 0-9 on top row keyboard
	     (event.keyCode >= 60 && event.keyCode <= 105) || // Alphanumeric and keypad
		 (event.keyCode == 8 || event.keyCode == 46) // Backspace and delete
	   )
	{
		getMembers(0);
	}
}


