var scrollposition = 0;
var _steps = [1*576];
var liPerDivs = [12];
var _fix = [0];
var scrollIds = ['gallery'];
var scrollIsRepeat = [true];
var scrollButtonIds = {'gallery':['btn-prev','btn-next']};

var scrollObjs = [];

function initScroll()
{
	var _div = $$('div.mask ul');
	if(_div[0])
	{
		_div[0].id = scrollIds[0];
	}
	for(var i=0; i < scrollIds.length; i++)
	{
		var ul = document.getElementById(scrollIds[i]);
		if(ul)
		{
			var lis = ul.getElementsByTagName('li');
			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_offsetWidth = ul.offsetWidth;
				ul.parentNode._ul_offsetWidth = ul_offsetWidth;
				ul.parentNode.mooeffect = new Fx.Styles( 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];
				}
				scrollObjs[i] = ul;
			}
			$ES('a', ul).each(function(a){
				a.addEvent('mouseenter', function(event){
					var rel = a.getProperty('rel');
					if(rel)
					{
						var popup = $(rel);
						if(popup)
						{
							var li = a.getParent();						
							var left = li.getParent().getParent().getStyle('left');
							popup.setStyle('left', 58 + li.offsetLeft + left.toInt());
							popup.addClass('show');
						}
					}
				});
				a.addEvent('mouseleave', function(event){
					var rel = a.getProperty('rel')
					if(rel)
					{
						var popup = $(rel);
						if(popup)
						{
							popup.removeClass('show');
						}
					}
				});
			});
		}
	}
}

function _next(_index,step)
{
	var ul = scrollObjs[_index];
	if(ul)
	{
		scrollObjs[_index]._currstep = scrollObjs[_index]._currstep + step;
		if(ul._isrepeat)
		{
			ul.parentNode.mooeffect.custom({'left':[ul.parentNode.offsetLeft,ul.parentNode.offsetLeft - step*_steps[_index]]});
		}
		else
		{
			if(ul.parentNode.offsetLeft > ul.parentNode._end)
			{
				ul.parentNode.mooeffect.custom({'left':[ul.parentNode.offsetLeft,ul.parentNode.offsetLeft - step*_steps[_index]]});
			}
		}
	}
}

function _prev(_index,step)
{
	var ul = scrollObjs[_index];
	if(ul)
	{
		scrollObjs[_index]._currstep = scrollObjs[_index]._currstep - step;
		if(ul._isrepeat)
		{
			ul.parentNode.mooeffect.custom({'left':[ul.parentNode.offsetLeft,ul.parentNode.offsetLeft + step*_steps[_index]]});
		}
		else
		{
			if(ul.parentNode.offsetLeft < ul.parentNode._start)
			{
				ul.parentNode.mooeffect.custom({'left':[ul.parentNode.offsetLeft,ul.parentNode.offsetLeft + step*_steps[_index]]});
			}
		}
	}
}
if (window.addEventListener)
	window.addEventListener("load", initScroll, false);
else if (window.attachEvent && !window.opera)
	window.attachEvent("onload", initScroll);