/*
USAGE:
	this.contactsList = new ContactsListClass();
	this.contactsList.name = this.name + ".contactsList";	
	this.contactsList.eventController = this;	
	this.contactsList.id = this.id + "invitationsSuggestionsBox";	
	this.contactsList.type = 'filtered';	

EVENTHANDLER:
	eventhandler.contactClicked(Contact);
	
Stylesheet-Classes:
	.ListEntryeven
	.ListEntryuneven
	.ListEntrySelected
	.ListIcon
	.ListEntryName
*/

function ContactsListClass() {
	var contacts = new Array;
	var listEntries = new Array;
	
	this.init = function() {
		this.innerContactsList = new ListClass();		
		if(!this.contactsList) {
			this.getContactsForUser();
		} else {
			this.retrieveContactsForUser(this.contactsList);
		}
	}
	
	this.getContactsForUser = function() {
		if(this.addUser) {
			addParamString = '?addUser=true';
		} else {
			addParamString = '';
		}
		jsonGetData('json/friends/getContacts.php' + addParamString, this.name + '.retrieveContactsForUser');	
	}
	
	this.retrieveContactsForUser = function(Object) {
		if(Object) {
			if(Object["status"] == 'ok') {
				if(Object["contacts"].length > 0) {
					for(z1=0; z1 < Object["contacts"].length; z1++) {
						contacts[z1] = new Array;
						
						if(Object["contacts"][z1]["SurName"] && Object["contacts"][z1]["LastName"]) {
							contacts[z1]["Name"] = Object["contacts"][z1]["SurName"] + " " + Object["contacts"][z1]["LastName"];
						} else {
							contacts[z1]["Name"] = Object["contacts"][z1]["UserName"];
						}
						
						contacts[z1]["UserName"] = Object["contacts"][z1]["PublicID"];
						contacts[z1]["ImagePath"] = Object["contacts"][z1]["ThumbnailPath"];
						contacts[z1]["MediumThumbnailPath"] = Object["contacts"][z1]["MediumThumbnailPath"];
						contacts[z1]["URLName"] = Object["contacts"][z1]["URLName"];
						
						listEntries[z1] = new Array;
						listEntries[z1]["Title"] = Object["contacts"][z1]["Name"];
						listEntries[z1]["Id"] = Object["contacts"][z1]["PublicID"];
						listEntries[z1]["IconPath"] = Object["contacts"][z1]["ThumbnailPath"];
						listEntries[z1]["MediumThumbnailPath"] = Object["contacts"][z1]["MediumThumbnailPath"];
						listEntries[z1]["URLName"] = Object["contacts"][z1]["URLName"];
					}
					
					// Display Contacts in Contact-List
					this.displayContactList();
				}
			}
		}
	}

	this.filterContacts = function(character, selected) {
		if(character.length!=0) {
			contactsFoundCounter = 0;
			listEntries = new Array;
					
			if(contacts.length > 0) {
				for(z1=0; z1 < contacts.length; z1++) {
					name = contacts[z1]["Name"].toUpperCase();
					search = name.indexOf(character.toUpperCase());
					
					if(search==0) {
						listEntries[z1] = new Array;
						listEntries[z1]["Title"] = contacts[z1]["Name"];
						listEntries[z1]["Id"] = contacts[z1]["PublicID"];
						listEntries[z1]["IconPath"] = contacts[z1]["ImagePath"];
						contactsFoundCounter++;
					} else {
						listEntries[z1] = new Array;
						listEntries[z1]["Title"] = false;				
					}
				}
			
				if(contactsFoundCounter == 0) {
					this.selectNull();
				} else {
					document.getElementById(this.id).style.display = 'block';
					this.displayContactList();
				}
			}
		} else {
			this.selectNull();	
		}
	}
	
	this.listEntryClicked = function(listName, id) {
		if(id>=0) {
			this.eventController.contactClicked(contacts[id]);
		} else {
			this.eventController.contactClicked(false);		
		}
	}
	
	this.displayContactList = function() {
		// Initialize Contacts
		document.getElementById(this.id).innerHTML = '';
		this.innerContactsList.id = this.id;
		if(this.type != 'filtered') {
			this.innerContactsList.title = 'Kontakte';
		} else {
			this.innerContactsList.title = false;		
		}
		this.innerContactsList.name = this.name + '.innerContactsList';
		this.innerContactsList.listName = 'innerContactsList';
		this.innerContactsList.listEntries = listEntries;
		this.innerContactsList.eventController = this;
		this.innerContactsList.init();
		this.innerContactsList.displayList();
	}

	this.selectNext = function() {
		this.innerContactsList.selectNext();
	}

	this.selectPrevious = function() {
		this.innerContactsList.selectPrevious();
	}

	this.selectNull = function() {
		this.innerContactsList.selectNull();
		document.getElementById(this.id).style.display = 'none';		
	}
	
	this.getSelected = function() {
		this.innerContactsList.getSelected();
	}

	this.sendContacts = function() {
		return(contacts);
	}
}

function friendsembeddedFriendsListjs() {}
