/*Directory javascript functions */
var IDs = Array();

function outputOrganizations(tag){

  var output = "<h1>Browse By Organization</h1>";
  var searchStr = buildDirectorySearchString("organizations");
  
  $.ajax({ 
	  method: "get", 
	  url: searchEngine,
	  data: searchStr,
	  success: function(xml){
		output += "<select id=\"panelCategory\" name=\"myselectbox\" tabindex=\"2\"><option value=\"0\">Select an Organization to Search...</option>";
		$("value",xml).each(function() {
		  output += "<option value=\""+ $(this).text() +"\">" + $(this).text() + "</option>";
		});
		output += "</select>";
		$(tag).html(output);
      }
    });
}

function directorySearch(Last_Name){

  var searchStr = "";
  if(Last_Name){
	searchStr = buildDirectorySearchString("Last_Name",Last_Name);
  }else{
	searchStr = buildDirectorySearchString();
  }
//alert(searchStr);

  //Send the Ajax request
  ///*
  $.ajax({ 
	method: "get", 
	url: searchEngine,    //Should be a config option
	data: searchStr,
	success: function(xml){
//alert(xml);	
      outputDirectoryRecords(xml);
    }
  });  
//*/
}

function buildDirectorySearchString(type,value){

  var searchStr = "";
  searchStr += "searchStr=contacts<:>search<::>";

  if(type == "organizations"){
    searchStr += "Organization1<:>Unique<,>Organization2<:>Unique";
  }else if(type != undefined){
//alert("type="+type+", value="+value);  
    searchStr += type + "<:>" + value;
  }else{
    var keywords = $("#panelKeyword").val();
	var organization = $("#panelCategory").val();
	
	if(keywords && (organization!=0)){
	  //Both input box filled in and pull down selected.  Make it an AND between the last name and organization
      if(document.getElementById("searchLastNames").checked){
	    searchStr += "Last_Name<:>"+keywords+"<:AND:><,>Organization1<:>\"" + organization + "\"<:OR:><,>Organization2<:>\"" + organization + "\"";
	  }else{
        searchStr += "Organization1<:>\"" + organization + "\"<:OR:><,>Organization2<:>\"" + organization + "\"";	  
	  }
	  searchStr += "<,>";
	}else if(keywords && (organization==0)){
	  //Only the input box is filled in.  See if either checkbox is active and make it an OR between last name and organization
	  var flag=0;
      if(document.getElementById("searchLastNames").checked){
	    searchStr += "Last_Name<:>"+keywords;
		if(document.getElementById("searchOrganizations").checked){
		  searchStr += "<:OR:><,>";
		}
	  }
	  //if(flag)searchStr += "<:OR:><,>";
	  if(document.getElementById("searchOrganizations").checked){
	    searchStr += "Organization1<:>" + keywords + "<:OR:><,>Organization2<:>" + keywords;
	  }
	  searchStr += "<,>";
	}else if(!keywords && (organization!=0)){
	  //Only organization is picked.  Just search the organization as is
      searchStr += "Organization1<:>\"" + organization + "\"<:OR:><,>Organization2<:>\"" + organization + "\"";	  
	  searchStr += "<,>";
	}else{
	  if(searchStr != "searchStr=contacts<:>search<::>"){
        searchStr += "<,>";
	  }
	}
	
	//searchStr += "<,>";
	
	var type = $("#typeSelect").val();
	if(type!=0){
	  searchStr += "Type<:>" + type + "<,>";
	}
	
	//Clean up final comma
	searchStr = searchStr.substr(0,searchStr.length-3);
  }

  return(searchStr);
}

function outputDirectoryRecords(xml){

  var output=outputDirectoryRecordsTable(xml);
    if(output != ""){
//alert(output);	
	  $("#directoryResults").html(output);
      $("#resultsTable").tablesorter({ 
                               sortList: [[0,0]],
                               headers: {3: {sorter: false}, 
                                         4: {sorter: false},
										 5: {sorter: false}
                                        }
        }); 
    }
}

function outputDirectoryRecordsTable(xml){
  var output = "";
  var header = "<table id=\"resultsTable\" class=\"tablesorter\" cellspacing=\"0\"><thead><tr><th class=\"colDirectoryName\" id=\"resultsTableDataSet\">Last Name</th><th class=\"colDirectoryName\" id=\"resultsTableCategory\">First Name</th><th class=\"colDirectoryName\">Organization</th><th class=\"colDirectoryName\">Email</th><th class=\"colDirectoryName\">Phone</th><th class=\"colDirectoryName\">Full Record</th></tr></thead><tbody id=\"resultsBody\">";
  var footer = "</tbody></table>";
  var body = Array();
  var rowH = "<tr>";
  var rowF = "</tr>";
 
  //Create the table
  var i=0;  
  $("record",xml).each(function() {  
    var ID = $(this).find("ID").text();
	if(ID){
	  IDs[i]=ID;
	  var Last_Name = "<td class=\"colDirectory expandImage\" onClick=\"expandSummary(" + $(this).find("ID").text() + ");\">" + $(this).find("Last_Name").text(); + "</td>";
	  var First_Name = "<td class=\"colDirectory expandImage\" onClick=\"expandSummary(" + $(this).find("ID").text() + ");\">" + $(this).find("First_Name").text(); + "</td>";
	  var Email = "<td class=\"colDirectory\"><a href=\"mailto:" + $(this).find("Email").text() + "\">" + $(this).find("Email").text() + "</a></td>";
	  var Phone = "<td class=\"colDirectory\">" + $(this).find("Phone").text();	
	  if($(this).find("Phone_extension").text()){
	    Phone += " x " + $(this).find("Phone_extension").text() + "</td>";
	  }else{	
	    Phone += "</td>";
	  }
	  var Organization = "<td class=\"colDirectory\">" + $(this).find("Organization1").text();
	  if($(this).find("Organization2").text()){
	    Organization += ";<br />" + $(this).find("Organization2").text() + "</td>";
	  }else{
	    Organization += "</td>";
	  }
	  var moreInfo = "<td><img src=\""+installDir+"images/icon-expand.gif\" alt=\"Summary Data\" onClick=\"expandSummary(" + $(this).find("ID").text() + ");\" class=\"expandImage\" /></td>";
	
	  //Write the full record in a hidden cell to be expanded when "moreInfo" cell is clicked
	  var hiddenBriefMetadata = "<td><div id=\""+$(this).find("ID").text()+"\" class=\"hide\"><table cellspacing=\"0\" class=\"expandDetails\">";
	  hiddenBriefMetadata += "<tr><td class=\"expandDescription\"><h3>" + $(this).find("First_Name").text() + " " + $(this).find("Last_Name").text() + "<img class=\"directoryCloseButton\" src=\"../images/delete.gif\" onClick=\"colapseSummary(" + $(this).find("ID").text() + ");\" /></h3>";
	  if($(this).find("Title").text()){
	    hiddenBriefMetadata += "Title: " + $(this).find("Title").text() + "<br />";
	  }
	  hiddenBriefMetadata += "Organization: " + $(this).find("Organization1").text();
	  if($(this).find("Organization2").text()){
	    hiddenBriefMetadata += ", " + $(this).find("Organization2").text() + "<br />";
	  }else{
	    hiddenBriefMetadata += "<br />";
	  }
	  hiddenBriefMetadata += "Address: " + $(this).find("Address1").text() + "<br />";
	  if($(this).find("Address2").text()){
	    hiddenBriefMetadata += $(this).find("Address2").text() + "<br />" + $(this).find("City").text() + ", " + $(this).find("State").text() + " " + $(this).find("Zip").text() + "<br />";
	  }else{
	    hiddenBriefMetadata += $(this).find("City").text() + ", " + $(this).find("State").text() + " " + $(this).find("Zip").text() + "<br />";
	  }
	  hiddenBriefMetadata += "Phone: " + $(this).find("Phone").text();
	  if($(this).find("Phone_extension").text()){
	    hiddenBriefMetadata += " x " + $(this).find("Phone_extension").text() + "<br />";
	  }else{	
	    hiddenBriefMetadata += "<br />";
	  }
	  if($(this).find("Fax").text()){
	    hiddenBriefMetadata += "Fax: " + $(this).find("Fax").text() + "<br />";
	  }
	  if($(this).find("WebSite").text()){
	    if($(this).find("WebSite").text() != "NONE"){
		  var httpCheck = $(this).find("WebSite").text().substr(0,7);
		  if(httpCheck != "http://"){
		    var website = "http://" + $(this).find("WebSite").text();
		  }else{
		    var website = $(this).find("WebSite").text();
		  }
	      hiddenBriefMetadata += "Website: <a href=\"" + website + "\">" + website + "</a><br />";
		}
	  }
	  hiddenBriefMetadata += "Email: <a href=\"mailto:" + $(this).find("Email").text() + "\">" + $(this).find("Email").text() + "</a>";
	  hiddenBriefMetadata += "</td></tr></table></td></div>";
	
	  body[i] = rowH + Last_Name + First_Name + Organization + Email + Phone + moreInfo + hiddenBriefMetadata;
      i++;	
	}
  });
//alert("i="+i);  
  $("#panelSearchButton").removeClass("searchButtonActive");
  $("#resultsHeaderEmpty").addClass("hide");
  
  output = header;
  for(j=0;j<body.length;j++){
    output += body[j];
  }
  output += footer;
  if(i==0)output="<h1 class=\"noData\">No Records Matched Your Search.  Please Refine Your Search and Try Again.</h1>";
  return(output);
}

function expandSummary(id){
    var showID = "#"+id;
    clearPopOvers(id,"","summaryDataHover");
    $(showID).toggleClass("hide");
	$(showID).toggleClass("summaryDataHover");
}

function colapseSummary(id){
    var showID = "#"+id;
	$(showID).toggleClass("hide");
	$(showID).toggleClass("summaryDataHover");
}

function clearPopOvers(id,addText,offClass){
	var hideID = "";
	for(i=0;i<IDs.length;i++){
	  if(id != IDs[i]){
	    hideID = "#"+IDs[i]+addText;
	    $(hideID).addClass("hide");
	    $(hideID).removeClass(offClass);
	  }
	}  
}

