var contactCounts = 0;
var contactResults;
var activeContactId;

function fillContactTable(contactSearchResults) {
	contactCounts = contactSearchResults.hits;
	contactResults = contactSearchResults.list;
	var resultsTableHeader = $get("resultsHeader");
    resultsTableHeader.style.display ='block';
    dwr.util.setEscapeHtml(false);
	dwr.util.removeAllRows("dynamicResultsTable");
    dwr.util.addRows("dynamicResultsTable", contactSearchResults.list, cellFunctions, {
	  	rowCreator:function(options) {
	    var row = document.createElement("tr");
	    row.onclick = function (evt) {
		    	showContact(this.rowIndex);
		    	};
		row.onmouseover = function (evt) {
			try{
				var tds = this.cells;
				for (i = 0; i <= tds.length; i++) {
					tds[i].style.backgroundColor = "#E6E6E6";
				}
			} catch (e) {};
			};
		row.onmouseout = function (evt) {
			try {
				var tds = this.cells;
				for (i = 0; i <= tds.length; i++) {
					tds[i].style.backgroundColor = "#FFFFFF";
				}
			} catch (e) {};
			};
		return row;
	  },
	  cellCreator:function(options) {
	    var td = document.createElement("td");
	    if (options.cellNum == 0) {
		    td.style.width = "270px";
		    td.style.fontWeight = "bold";
		}
		if (options.cellNum == 1) {
		    td.style.width = "70px";
		    td.style.fontWeight = "bold";
		}
		if (options.cellNum == 2) {
		    td.style.width = "70px";
		    td.style.fontWeight = "bold";
		}
	    return td;
	  }
	});
	//set results count
    var searchCount = $get("searchCount");
    searchCount.innerHTML = contactSearchResults.formatedHits;
    searchCount.style.fontWeight = "bold";
    searchCount.style.fontSize =  "18px";
    var displayCount = $get("displayCount");
    displayCount.innerHTML = contactSearchResults.list.length;
    if (contactSearchResults.hits == 0) {
    	try {
    		resultsTableHeader.style.display ='none';
   			var resultsTable = $get("dynamicResultsTable");
		    var newRow = resultsTable.insertRow();
		    var newCell = newRow.insertCell();
		    newCell.innerHTML = "Jigsaw has no contacts matching your search, please broaden your search criteria.";
    	} catch (e) {}
    } else {
    	showContactWithId(contactResults[0].id);
	}

}
var cellFunctions = [
  function(contactSearchResult) { return "<a href='#'> " + fixLength(contactSearchResult.title, 40) + "</a>";},
  function(contactSearchResult) { return "<a href='#'> " + fixLength(contactSearchResult.firstName, 10) + "</a>"; },
  function(contactSearchResult) { return "<a href='#'> " + fixLength(contactSearchResult.lastname, 10) + "</a>"; }
];

function fixLength(str, maxLimit){
	if (str.length > maxLimit) {
		return str.substring(0, maxLimit);
	}
	
	return str;
}
var alterColor = false;
function displayContact(contact) {
	try {
		var bcont = $get("buscardContent");
		if (alterColor) {
			bcont.style.backgroundColor = "#ffffff";
		} else {
			bcont.style.backgroundColor = "#fffff0";
		}
		alterColor = !alterColor;
		var contactAttr = $get("contactName");
		contactAttr.innerHTML = contact.firstName + " " +  contact.lastName;
		contactAttr = $get("contactTitle");
		contactAttr.innerHTML = contact.title;

		contactAttr = $get("contactCompanyName");
		contactAttr.innerHTML = contact.companyName;
		contactAttr = $get("contactAddress");
		contactAttr.innerHTML = contact.address;
		contactAttr = $get("contactAddress2");
		contactAttr.innerHTML = contact.city + ", " + contact.stateName + " " + contact.zip + " " + contact.countryName;

		contactAttr = $get("contactPhone");
		contactAttr.innerHTML = contact.phone;
		contactAttr = $get("contactEmail");
		contactAttr.innerHTML = contact.email;
		
	} catch (e) {
		// alert("exception..." + e);
	}
}

function showContact(contactIndex) {
	var contact = contactResults[contactIndex];
	showContactWithId(contact.id);
}

function showContactWithId(contactId) {
	activeContactId = contactId;
	SearchAPI.getContact(contactId, $("firstName").value.length, $("lastName").value.length, displayContact);
}



function searchContacts() {
	if ($("companyId")) {
	  var companyId = $("companyId").value;
	  var p1 = $("title").value;
	  var p2 = $("firstName").value;
	  var p3 = $("lastName").value;
	  SearchAPI.findContacts(companyId, p1, p2, p3, fillContactTable);
	}
}