/*
* Site Contacts
* @Author: Alexander Gavazov
* @Site: www.studio.bg
*/


var Contacts = function(parameters)
{
	this.markers = parameters.markers;
	this.container = parameters.container;
	this.superContainer = parameters.superContainer;

	this._Eingine = new VE;
	this._containerTopOffset = 0;

	this.setBehaviour();
}

Contacts.prototype.setBehaviour = function()
{
	this._containerTopOffset = this.container.cumulativeOffset().top;
	this.markers.each(function(node) {
		Event.observe(node, 'click', this.showContact.bind(this, node.title));
		node.removeAttribute('title');
	}.bind(this));
}

Contacts.prototype.showContact = function(id)
{
	this.scrollWindow();

	this._Eingine.stop();

	var start = parseInt(this.container.style.top);
	this.container.style.top = 0;
	var end = -parseInt($(id).cumulativeOffset().top - this._containerTopOffset);
	this.container.style.top = start + 'px';
	var _this = this;

	if(start == end)
	{
		return;
	}

	this._Eingine.init(start, end, Easing.expoOut, 1);
	this._Eingine.onChange = function(position)
	{
		_this.container.style.top = position + 'px';
	}
	this._Eingine.start();
}

Contacts.prototype.scrollWindow = function()
{
	var start = document.viewport.getScrollOffsets().top;
	var end = this.superContainer.cumulativeOffset().top + this.superContainer.offsetHeight - document.viewport.getHeight();

	if(start >= end)
	{
		return;
	}

	moveScroll(start, end);
}
