
function changeAddressType(id, type)
{
	var research = document.getElementById('entryresearch.' + id);
	
	if (type == 1)
	{
		addElementClass(research, 'hidden');
	}
	else
	{
		removeElementClass(research, 'hidden');
		infosbubble.show(research, research.description);
		infosbubble.freeze();
	}
}


function Entry(objectclass, id, folder_id){
	this.objectclass = objectclass;
	this.objectid = id;
	this.folder_id = folder_id;
}

Entry.prototype.onElementAdded = function (element, data)
{
	window.location = element.getElementsByTagName('A')[0].href;
}

Entry.prototype.onItemClicked = function(e, id, item)
{
	this.selectInstance(id, item, item.getElementsByTagName('p')[0].innerHTML);
	if (window.Event) window.Event.returnValue=false;
	return false;
}

Entry.prototype.removeAddress = function (address)
{
	if (address.parentNode.parentNode.parentNode)
	{
		var address = address.parentNode.parentNode.parentNode.parentNode;
		var parent = address.parentNode;
		
		if (parent.getElementsByTagName('LI').length > 1)
			address.remove();
	}
}

Entry.prototype.remove = function ()
{
	if (confirm('Supprimer ce profil (ainsi que les adresses, dossiers, images, articles, comptes, adresses liées)? Etes-vous sûr ?'))
		window.location = '?section=entries&id=' + this.objectid + '&folder_id='+this.folder_id+'&action=remove';
}

Entry.prototype.clickInstance = function (id)
{
	var input = document.getElementById(this.objectclass + '.'+id+'.instance_id');
		input.value = '';
		input.update();
	
	this.refreshAddress(false, id);
}

Entry.prototype.reorganize = function()
{
	var specs = new Array();
	
	for (var i = 1; i <= 4; i++)
	{
		var select = document.getElementById(this.objectclass + '.'+this.objectid+'.spec_' + i);
		if (select.selectedIndex > 0)
			specs[specs.length] = select.selectedIndex;
	}
	
	for (var i = 1; i <= 4; i++)
	{
		var select 	= document.getElementById(this.objectclass + '.'+this.objectid+'.spec_' + i);
		var link	= document.getElementById('spec_' + i);
		
		if (specs[i-1])
		{
			select.selectedIndex = specs[i-1];
			var name = select.options[specs[i-1]].getAttribute('titlename');
			if (i < specs.length) name += ', ';
				link.innerHTML = name;
			
			addElementClass(select, 'hidden');
			removeElementClass(link, 'hidden');
		}
		else
		{
			select.selectedIndex = -1;
			link.innerHTML = '';
			addElementClass(link, 'hidden');
			
			if (i == specs.length + 1)
			{
				removeElementClass(select, 'hidden');
				select.checkValue();
			}
			else
				addElementClass(select, 'hidden');
		}
	}
}


Entry.prototype.selectSpec = function(element, id)
{
	var select = element;
	
	/*if (select.selectedIndex != 0)
	{
		var link = document.getElementById('spec_' + id);
			link.innerHTML = element.options[element.selectedIndex].text + ', ';
			removeElementClass(link, 'hidden');
		
			addElementClass(select, 'hidden');
	}
	else
	{*/
		this.reorganize();
	//}
}

Entry.prototype.clickSpec = function(element, id)
{
	
	var link = element;
		link.innerHTML = '';
		addElementClass(link, 'hidden');
	
	this.reorganize();
	
	for (var i = 1; i <= 4; i++)
	{
		var select 	= document.getElementById(this.objectclass + '.'+this.objectid+'.spec_' + i);
		var link	= document.getElementById('spec_' + i);
		
		if (id == i)
		{
			removeElementClass(select, 'hidden');
			addElementClass(link, 'hidden');
			select.checkValue();
		}
		else
			addElementClass(select, 'hidden');
	}
}

Entry.prototype.refreshAddress = function (xhr, id)
{
	if (!xhr)
	{
		this.item = document.getElementById(this.objectclass + '.'+id+'.pos');
		xhr = sendAjaxRequest('?section=update&action=query&edition=true', 'data=' + this.objectclass + '.' + id +'.display&value=address', this, 'refreshAddress');
		xhr.id = id;
	}
	else
	{
		var item 		= this.item;
		var container 	= item.parentNode;
		var elements 	= container.generateElements(xhr.responseXML, 'response');
		
		for (var i = 0; i < elements.length; i++)
		{
			var element = elements[i];
			if (element.nodeType == 1)
			{
				container.insertBefore(element, item);
				break;
			}
		}
		
		setTimeout('new Search(\''+xhr.id+'\', document.getElementById(\''+this.objectclass + '.'+xhr.id+'.establishment\'), \'Establishment\', entry);', 1);
		
		item.parentNode.removeChild(item);
	}
}

Entry.prototype.selectInstance = function (id, item, name)
{
	/*var h3 = document.getElementById('entry.'+id+'.pos').getElementsByTagName('h3')[0];
		removeElementClass(h3, 'hidden');
	
	var link = h3.getElementsByTagName('a')[0];
		link.innerHTML = name;*/
	
	var input = document.getElementById(this.objectclass + '.'+id+'.instance_id');
	
	if (input)
	{
		input.value = item.getAttribute('objectid');
		input.update();
	}
	
	this.refreshAddress(false, id);
}

Entry.prototype.createAccount = function (xhr)
{
	if (!xhr)
	{
		sendAjaxRequest('?section=update&action=query', 'data=' + this.objectclass + '.' + this.objectid +'.createAccount', this, 'createAccount');
	}
	else
	{
		window.location = xhr.responseXML.getElementsByTagName('link')[0].firstChild.nodeValue;
	}
}