var scrollposition = 0;
var _steps = [5*133,396];
var liPerDivs = [5,1];
var __steps = [5*133,396];
var _fix = [0,0];
var scrollIds = ['img-gallery','accommodation_gallery'];
var scrollIsRepeat = [true,true];
var scrollButtonIds = {'img-gallery':['btn-prev','btn-next'],'accommodation_gallery':['el-prev','el-next']};

var scrollObjs = [];

function initScroll()
{
	for(var i=0; i < scrollIds.length; i++)
	{
		var ul = document.getElementById(scrollIds[i]);
		if(ul)
		{
			var lis = ul.getElementsByTagName('li');
			ul._liscnt = 0 + lis.length;
			var reminder = (lis.length) % liPerDivs[i];
			if(reminder > 0)
			{
				for(var j=0; j< liPerDivs[i]-reminder; j++)
				{
					var _li = document.createElement('li');
					_li.className = "no-bg";
					var __li = ul.appendChild(_li);
				}
			}
			
			var lis = ul.getElementsByTagName('li');
			total_cnt = lis.length;
			
			var ulw = (total_cnt/liPerDivs[i]) * _steps[i] + _fix[i];

			if(ulw > ul.parentNode.parentNode.offsetWidth)
			{
				ul.parentNode.id = "slide-div-" + i;
				ul.parentNode.style.position = "absolute";
				ul_offsetWidth = ul.offsetWidth;		
				ul.parentNode._ul_offsetWidth = ul_offsetWidth;
				
				ul.parentNode.mooeffect = new Fx.Morph( ul.parentNode.id, {duration: 600,
								
							onStart: function(){
							},
							onComplete: function(){

								if(this.element.offsetLeft > this.element._start)
								{
									this.set({'left': this.element._end});
								}
								else if(this.element.offsetLeft < this.element._end)
								{
									this.set({'left': this.element._start});							
								}
							}		
					
					});
					
				ul.innerHTML = ul.innerHTML + ul.innerHTML + ul.innerHTML;
		
				ul.parentNode.mooeffect.set({'left': ul.parentNode.offsetLeft -1 * ulw });
		
				ul.parentNode._start = ul.parentNode.offsetLeft;
				ul.parentNode._end = ul.parentNode.offsetLeft - ulw + _steps[i];
				
				if(scrollButtonIds[scrollIds[i]])
				{
					var aprev = document.getElementById(scrollButtonIds[scrollIds[i]][0]);
					if(aprev)
					{
						aprev.href = 'javascript:;';
						aprev._index = i;
						aprev.onclick = function(){
							_prev(this._index,1);
						}
					}
					var anext = document.getElementById(scrollButtonIds[scrollIds[i]][1]);
					if(anext)
					{
						anext.href = 'javascript:;';
						anext._index = i;
						anext.onclick = function(){
							_next(this._index,1);
						}
					}
				}
				
				ul._isrepeat = false;
				ul._currstep = 0;
				
				if(scrollIsRepeat[i])
				{
					ul._isrepeat = scrollIsRepeat[i];
				}				
			}
			else
			{
				if(scrollButtonIds[scrollIds[i]])
				{
					var aprev = document.getElementById(scrollButtonIds[scrollIds[i]][0]);
					if(aprev)
					{
						aprev.href = 'javascript:;';
						aprev._index = i;
					}
					var anext = document.getElementById(scrollButtonIds[scrollIds[i]][1]);
					if(anext)
					{
						anext.href = 'javascript:;';
						anext._index = i;
					}
				}				
			}
			scrollObjs[i] = ul;
		}
	}
	
	if(scrollObjs[0])
	{
		initAGallery();
		initExternalA();
		initPopup();
	}

	if($('step-pager'))
	{			
		$('step-pager').innerHTML = "1 of " + scrollObjs[1]._liscnt;		
	}		
	
}

function _next(_index,step)
{
	var ul = scrollObjs[_index];
	if(ul)
	{
		scrollObjs[_index]._currstep = scrollObjs[_index]._currstep + step;
		if($('step-pager'))
		{			
			if(scrollObjs[_index]._currstep > scrollObjs[_index]._liscnt - 1)
				scrollObjs[_index]._currstep = 0;
				
			$('step-pager').innerHTML = (scrollObjs[_index]._currstep + 1) + " of " + scrollObjs[_index]._liscnt;		
		}		
		var __step = _steps[_index];
		if(__steps[_index]) __step = __steps[_index];
		if(ul._isrepeat)
		{	
			ul.parentNode.mooeffect.start({'left':[ul.parentNode.offsetLeft,ul.parentNode.offsetLeft - step*__step]});
		}
		else
		{
			if(ul.parentNode.offsetLeft > ul.parentNode._end)
			{
				ul.parentNode.mooeffect.start({'left':[ul.parentNode.offsetLeft,ul.parentNode.offsetLeft - step*__step]});
			}
		}
	}
}

function _prev(_index,step)
{
	var ul = scrollObjs[_index];
	if(ul)
	{
		scrollObjs[_index]._currstep = scrollObjs[_index]._currstep - step;
		if($('step-pager'))
		{
			
			if(scrollObjs[_index]._currstep < 0)
				scrollObjs[_index]._currstep = scrollObjs[_index]._liscnt - 1;
				
			$('step-pager').innerHTML = (scrollObjs[_index]._currstep + 1) + " of " + scrollObjs[_index]._liscnt;		
		}
		var __step = _steps[_index];
		if(__steps[_index]) __step = __steps[_index];
		if(ul._isrepeat)
		{
			ul.parentNode.mooeffect.start({'left':[ul.parentNode.offsetLeft,ul.parentNode.offsetLeft + step*__step]});
		}
		else
		{
			if(ul.parentNode.offsetLeft < ul.parentNode._start)
			{
				ul.parentNode.mooeffect.start({'left':[ul.parentNode.offsetLeft,ul.parentNode.offsetLeft + step*__step]});		
			}		
		}
	}
}

var _gclasses = {'img-thumb':['big-image','big-image-title']};
var cnt = 0;
var _img = false;
var _loader = false;

function initAGallery()
{
	_loader = document.getElementById('loader');
	var _as = document.getElementsByTagName("a")
	{
		for(var i=0; i < _as.length; i++)
		{
			if(_as[i].className.length > 0 && _gclasses[_as[i].className])
			{
				_as[i].onclick = function()
				{
					_img = document.getElementById(_gclasses[this.className][0]);
					if(_img)
					{
						__img = new Image();
						__img.src = this.href;
						if(__img.complete)
						{
							_img.src = __img.src;
						}
						else
						{
							_loader.style.display = "block";
							__img.onload = _switch_img;
							//setTimeout(function(){__img.onload()},3000);
						}
					}
					var _imgt = document.getElementById(_gclasses[this.className][1]);
					if(_imgt)
					{
						_imgt.innerHTML = '<strong><span>' + this.title + '</span></strong>';
						try{initImageTitle()}catch(e){};
					}
					return false;
				}
			}
		}
	}
}

function _switch_img()
{
	if(_img && _loader)
	{
		_loader.style.display = "none";		
		_img.src = this.src;
	}
}

function _open_popup()
{
	if(_popup)
	{
		_popup.style.display = 'block';
	}	
}

function _close_popup()
{
	if(_popup)
	{
		_popup.style.display = 'none';
	}
	return false;
}

var _popup = false;

function initPopup()
{
	if($("popup") && $("container"))
	{
		$("popup").style.height = $("container").offsetHeight + "px";
	}
	if($("popup"))
	{		
		_popup = $("popup").parentNode;
		_popup.style.display = "none";
		_popup.style.visibility = "visible";
		if($("close-popup"))
		{
			$("close-popup").onclick = _close_popup;
		}
	}
}

function initExternalA()
{
	if($('view-all'))
	{
		$('view-all').href = "#popup-gallery";
		$('view-all').onclick = function()
		{
			_open_popup();
		}
	}
	if($('accommodation_gallery'))
	{
		$('accommodation_gallery').href = "#popup-gallery";
		$('accommodation_gallery').onclick = function()
		{
			_open_popup();
		}
	}    
	var _gal_as = scrollObjs[0].getElementsByTagName('a');
	var _gal_length = _gal_as.length/3;
	var _eul = $('external-a')
	if(_eul)
	{
		var _as = _eul.getElementsByTagName('a');
		for(var i = 0; i < _as.length; i++)
		{
			if(i < _gal_length)
			{
				_as[i]._index = i;
				_as[i].href = "#popup-gallery";
				_as[i]._gimg = _gal_as[_gal_length + i + 1];
				_as[i].onclick = function()
				{
					if(this._gimg)
					{
						_open_popup();
						this._gimg.onclick();
						scrollObjs[0].parentNode.style.left = (scrollObjs[0].parentNode._start - Math.floor(this._index/5)*_steps[0]) + "px";
					}
					//return false;
				}
			}
		}		
	}
}

if (window.addEventListener)
	window.addEventListener("load", initScroll, false);
else if (window.attachEvent)
	window.attachEvent("onload", initScroll);
