// onLoad="GetMoreVoters()"

/***********************************************************
//	Source Code Confidential.
//	Copyright (c) 2011 by Rick DeWitt, All Rights Reserved.
//	Used by the Washingtons State Democrats by permission.
***********************************************************/


function BodyOnLoad() {
  GetMoreVoters();
  ToggleInit();
}

function cmpVoters(a,b) {
	if (a.LName < b.LName) {
		return -1;  
	}
	if (a.LName > b.LName) {
		return 1;  
	}
	if (a.FName < b.FName) {
		return -1;  
	}
	if (a.FName > b.FName) {
		return 1;  
	}
	if (a.MName < b.MName) {
		return -1;  
	}
	if (a.MName > b.MName) {
		return 1;  
	}
	return 0; 
}



function Voters2Table(voters) {
  str = '';

  var avoters = [];
  var ivoter = 0;
  var cvoter = 0;

  for (ivoter in voters) {
	avoters.push(voters[ivoter]);
  }
  cvoter = avoters.length;

  avoters.sort(cmpVoters);

  for (ivoter=0; ivoter < cvoter; ivoter++) {
    str += Voter2TableRowString(avoters[ivoter]);
  }

  return (str);
}


function Voter2TableRowString(voter) {
  str = '';

  if (voter.StateVoterID) {
	str += '<tr><td class="';

    if (voter.Statuscode === "A") {
	  str += 'activevoter';
	} else if (voter.Statuscode === "I") {
	  str += 'inactivevoter';
	} else {
	  str += 'cancelledvoter';
	}
	str += '">';
	
	str += '<a ';
	str += 'class="';
	if (voter.Statuscode === "A") {
	  str += 'activevoter';
	} else if (voter.Statuscode === "I") {
	  str += 'inactivevoter';
	} else {
	  str += 'cancelledvoter';
	}

	str += '" href = "?wavid=';
	str += voter.StateVoterID;
	str += '">';

	str += voter.LName;
	str += ', ';
	str += voter.FName;
	str += ' ';
	str += voter.MName;
	str += '</a>';
	
	str += '</td><td>';
	str += voter.Gender;
	str += ' ';
	str += voter.RegStNum;
	str += '... ';
	str += voter.RegCity;
	str += ', ';
	str += voter.RegZipCode;

	str += '</td><td>';

	str += ' (';
	str += voter.CountyCode;
	str += '';
	str += voter.LegislativeDistrict;
	str += ')';

	str += '</tr></td>';
  }

  return (str);
}


function URLDeltaElement(p, str) {
  var d_element = document.getElementById(str);

  d = '';
  if ((d_element) && (d_element.value) && (d_element.value != '')) {
	  
    d += '&';
	d += p;
	d += '=';
	d += d_element.value;
  }	
  return (d);
}


function GetMoreVoters() {
  var el_votertable = document.getElementById("votertable");

  if (null == el_votertable) {
  	return;
  }

  if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
  } else {// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }

  xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState==4 && xmlhttp.status==200) {
      // document.getElementById("searchresults").innerHTML=xmlhttp.responseText;
	  
	  var engineObject = eval('(' + xmlhttp.responseText + ')');
	
	  votertable  = '<table id="votertable" width="100%">';
	  
	  if (typeof(engineObject.voters) === "object") {
	    votertable += Voters2Table(engineObject.voters);  
	  } else {
	    votertable += '<tr><td colspan="3">';
		votertable += '<br />No voters found.';
//		votertable += '<p>Hint: The search criteria may have been either too specific, too vague, or just misspelled. ';
//		votertable += 'If you are unsure of your spelling, try using a space as a wildcard. ';
//		votertable += 'Please adjust the values, and try again.</p>';
	    votertable += '</tr></td>';
	  }

	  votertable += '</table>';
      document.getElementById("votertable").innerHTML = votertable;
    }
  }

  url = 'engine.php?ajax=1&irow=0&crow=50';
  url += URLDeltaElement('gender', 'sel_gender');
  url += URLDeltaElement('firstname', 'txt_firstname');
  url += URLDeltaElement('middlename', 'txt_middlename');
  url += URLDeltaElement('lastname', 'txt_lastname');
  url += URLDeltaElement('house', 'txt_house');
  url += URLDeltaElement('city', 'txt_city');
  url += URLDeltaElement('zip', 'txt_zip');
  url += URLDeltaElement('county', 'sel_county');
  url += URLDeltaElement('ld', 'sel_ld');
  url += URLDeltaElement('cd', 'sel_cd');
  url += URLDeltaElement('wavid', 'txt_wavid');
  
  xmlhttp.open("GET", url, true);
  xmlhttp.send();
}

function ToggleElementByID(div_id, val_id, init) {
	var div_eleid = document.getElementById(div_id);
	var val_eleid = document.getElementById(val_id);
	
	if (div_eleid) {
		if (init) {
			if (val_eleid.value.length != 0) {
				div_eleid.style.display = 'block';
			} else {
				div_eleid.style.display = 'none';	
			}
		} else if ((div_eleid.style.display == 'block') && (val_eleid.value.length == 0)) {
			div_eleid.style.display = 'none';
		} else {
			div_eleid.style.display = 'block';
		}
	}
}


function AdvancedToggle() {
  if (null != document.getElementById('div_gender')) {
	ToggleElementByID('div_gender', 'sel_gender', false);
	ToggleElementByID('div_county', 'sel_county', false);
	ToggleElementByID('div_ld', 'sel_ld', false);
	ToggleElementByID('div_cd', 'sel_cd', false);
	ToggleElementByID('div_wavid', 'txt_wavid', false);
  }
}


function ToggleInit() {
  if (null != document.getElementById('div_gender')) {
	ToggleElementByID('div_gender', 'sel_gender', true);
	ToggleElementByID('div_county', 'sel_county', true);
	ToggleElementByID('div_ld', 'sel_ld', true);
	ToggleElementByID('div_cd', 'sel_cd', true);
	ToggleElementByID('div_wavid', 'txt_wavid', true);
  }
}








