/**
 * This overrides existing contact code, and builds proper contacts
 * @constructor
 */

var Contact = function() {
  this.givenNames = [];
  this.familyName = "";
  this.phones = [];
  this.category = "";
  this.companyName = "";
  this.isCompany = false;
  this.email = [];
  this.addresses = [];
  this.uri = [];
  this.prefix = "";
  this.jobTitle = "";
  this.birthday = "";
  this.phoneticName = "";
}

var Address = function() {
  this.street = "";
  this.postalCode = "";
  this.city = "";
  this.region = "";
  this.countryCode = "";
  this.country = "";
  this.building = "";
  this.floor = "";
  this.accessCode = "";
}

var PhoneNumber = function() {
  this.number = "";
  this.type = ""; 
}

var Email = function() {
  this.address = "";
  this.type = "";
}

var ImHandle = function()
{
  this.address = "";
  this.type = "";
  this.network = "";
}

var Uri = function() {
  this.addr = "";
  this.rel = "";
}


var AddressBook = function() {
  this.name = "";
  this.resultSet = [];
}

AddressBook.prototype.addContact = function(newContact, win, fail)
{
    
}

AddressBook.prototype.removeContact = function(target, win, fail)
{
  
}

AddressBook.prototype.findContacts = function(filter,win, fail)
{
}

PhoneGap.addConstructor(function() {
  if (typeof navigator.AddressBook == "undefined")
    navigator.AddressBook = new AddressBook(); });
AddressBook.prototype.addContact = function(newContact, win, fail)
{
    
}

AddressBook.prototype.removeContact = function(target, win, fail)
{
  
}

AddressBook.prototype.findContacts = function(filter,win, fail)
{
  this.win = win;
  this.fail = fail;
  // Zero out the result set for the query
  this.resultSet = [];
  var name = "";
  var phone = "";
  var email = "";

  if (filter.givenName)
    name = filter.givenName;
  if (filter.familyName)
    name += filter.familyName;
  if (filter.phone)
    var phone = filter.phone;
  if (filter.email)
    var email = filter.email;
  ContactHook.search(name, phone, email);
}

AddressBook.prototype.droidFoundContact = function(name, npa, email)
{
  names = name.split(' ');
  personContact = new Contact();
  personContact.givenNames.push(names[0]);
  // This is technically wrong, but we can't distinguish right now
  if(names.length > 1)
  {
    personContact.familyName = name[name.length -1];
  }

  telNumber = new PhoneNumber();
  telNumber.number = npa;
  personContact.phones.push(telNumber);

  email_addr = new Email();
  email_addr.address = email;
  
  personContact.email.push(email_addr);

  this.resultSet.push(personContact);

}

AddressBook.prototype.droidDoneContacts = function()
{
  if(resultSet.length > 0)
    this.win(resultSet);
  else
    this.fail();
}