//searchNamePurp.js
//Author: R. Buck
//This script facilitates an AJAX search of club and organization data
//1-6-09
//NEEDS CODE REFINEMENT!!

//The global XMLHttpRequest variable
var snxhr;

//Global arrays 
var clubsNameList = new Array();
var clubsPhoneList = new Array();
var clubsEmailList = new Array();
var clubsOrgsURL = new Array();
var officerName = new Array();
var officerTitle = new Array();
var officerPhone = new Array();
var officerEmail = new Array();
var clubsOrgsPurpList = new Array();

var searchString;

function sncreateXMLHttpRequest() {
    //Call the right constructor for the browser
    if (window.ActiveXObject) {
         snxhr = new ActiveXObject("Microsoft.XMLHTTP");
    } 
    else if (window.XMLHttpRequest) {
        snxhr = new XMLHttpRequest();
    }
    else {
	alert("Your browser does not support AJAX");
    }
}

//Initializes the script when the html doc is loaded 
function searchRequest(s) {
    sncreateXMLHttpRequest();
    searchString = s.toLowerCase(); 
    snxhr.onreadystatechange = snhandleStateChange; 
    var f1=("clubs_orgs.xml"); 
    snxhr.open("GET", f1, true);
    snxhr.send(null);
}


//Verifies the state has changed and proceeds with display method    
function snhandleStateChange() {
if(snxhr.readyState == 4) {
        if(snxhr.status == 200) {
           bundleOrgs(searchString);
        
	}
    }
}

 
function bundleOrgs(searchString) {
   var xmlDoc = snxhr.responseXML;
   var clubsOrgsRow = xmlDoc.getElementsByTagName("ROW");

   clubsNameList = xmlDoc.getElementsByTagName("OrgName");
   clubsPhoneList = xmlDoc.getElementsByTagName("OrgPhone");
   clubsEmailList = xmlDoc.getElementsByTagName("OrgEmail");
   clubsOrgsURL = xmlDoc.getElementsByTagName("OrgURL");
   officerName = xmlDoc.getElementsByTagName("Officer1Name");
   officerTitle = xmlDoc.getElementsByTagName("Officer1Title");
   officerPhone = xmlDoc.getElementsByTagName("Officer1Phone");
   officerEmail = xmlDoc.getElementsByTagName("Officer1Email");
   clubsOrgsPurpList = xmlDoc.getElementsByTagName("OrgPurpose");

   outputNameResults(clubsNameList, searchString);

}

function outputNameResults(clubsNameList, searchString) {
    var currClub = null;
    var currLtr = null;
    var ltrCounter = 0; 
    var clubNum = document.getElementById("CLUBNUM");
    var club = document.getElementById("CLUB");
    club.innerHTML = "";
    clubNum.innerHTML = "";
 
    if (searchString.length > 0 ){
       for(var i = 0; i < clubsNameList.length; i++) {
          currClub = clubsNameList[i];  
          //Searching Takes Place Here 
	  if (currClub.childNodes[0].nodeValue.toLowerCase().search(searchString) != -1) { 
             ltrCounter++; 
       	     //currClub = clubsNameList[i];
             var v1 = new String("<a href=\"javascript:showClubInfo\(");
             var v2 = v1 + i;
             var v3 = new String("\)\">");
             var v4 = (v2+v3);
             var v5 = currClub.childNodes[0].nodeValue;
             var v6 = v4 + v5;
             club.innerHTML += v6;
             club.innerHTML += "</a>";
             club.innerHTML += "<br />";
          }
	} 
        clubNum.innerHTML = ltrCounter;

    }
    else {
           club.innerHTML += "no results";
       }
   return true;
}

function showClubInfo(i) {
    var clubName = document.getElementById("CLUBNAME");
    var clubPurp = document.getElementById("CLUBPURP");
    var clubUrl = document.getElementById("CLUBURL");
    var clubPhone = document.getElementById("CLUBPHONE");
    var clubEmail = document.getElementById("CLUBEMAIL");
    var offName = document.getElementById("OFF1NAME");
    var offTitle = document.getElementById("OFF1TITLE");
    var offPhone = document.getElementById("OFF1PHONE");
    var offEmail = document.getElementById("OFF1EMAIL");

    clubName.innerHTML = "";
    clubPurp.innerHTML = "";
    clubUrl.innerHTML = "";
    clubPhone.innerHTML = "";
    clubEmail.innerHTML = "";
    offName.innerHTML = "";
    offTitle.innerHTML = "";
    offPhone.innerHTML = "";
    offEmail.innerHTML = "";
    
    if (clubsNameList[i].childNodes[0] != undefined){
        clubName.innerHTML += clubsNameList[i].childNodes[0].nodeValue; 
    }

    if (clubsPhoneList[i].childNodes[0] != undefined){
        clubPhone.innerHTML += clubsPhoneList[i].childNodes[0].nodeValue;
    }
    if (clubsOrgsPurpList[i].childNodes[0] != undefined){
        clubPurp.innerHTML += clubsOrgsPurpList[i].childNodes[0].nodeValue;
    }
   if (clubsOrgsURL[i].childNodes[0] != undefined){
           var clublink = clubsOrgsURL[i].childNodes[0].nodeValue;
           var v1 = new String("<a href=\"http://");
           var v2 = v1 + clublink;
           var v3 = new String("\">");
           var v4 = v2+v3;
           var v5 = v4 + clublink;
           clubUrl.innerHTML += v5;
           clubUrl.innerHTML += "</a>";
    }
 

if (officerName[i].childNodes[0] != undefined){
        offName.innerHTML += officerName[i].childNodes[0].nodeValue;
    }
    if (officerTitle[i].childNodes[0] != undefined){
        offTitle.innerHTML += officerTitle[i].childNodes[0].nodeValue;
    }
    if (officerPhone[i].childNodes[0] != undefined){
        offPhone.innerHTML += officerPhone[i].childNodes[0].nodeValue;
    }
    if (officerEmail[i].childNodes[0] != undefined){
        offEmail.innerHTML += officerEmail[i].childNodes[0].nodeValue;
    }
    if (clubsEmailList[i].childNodes[0] != undefined){
        clubEmail.innerHTML += clubsEmailList[i].childNodes[0].nodeValue;
    }

}


