/*$(document).ready(function(){
	initVadGallery();
	
	/*	$('#carusel').galleryScroll({
		btPrev: 'a.link-prev',
		btNext: 'a.link-next',
		holderList: 'div.frame',
		scrollElParent: 'ul.imagelist',
		scrollEl: 'ul.imagelist > li',
		slideNum: false,
		duration : 1000,
		circleSlide: true
	});
});*/

var groupLength = null;
var holder = null;
var attr = 'class';
var current_index = 0;
var nb_item = 0;

function initVadGallery(index){
	var _attr = 'class';
	var _holder = $('div.slider-frame');
	holder = _holder;
	var _itemsHolder = _holder.children('div.slider-hold');
	var _itemList = _itemsHolder.children('ul')
	var _items = _itemList.find('>li');
	nb_item = _items.length;
	var _groupHolder = $('.slider-group > ul');
	var _group = _groupHolder.find('>li');
	var _itemWidth = _items.innerWidth();
	var _duration = 1000;

	var _groupName = new Array(_group.length);
	var _groupCount = new Array(_group.length);
	var _groupLength = new Array(_group.length);
	
	_group.each(function(_ind){
		if ($(this).attr(_attr)!='' && _groupName[_ind]!=$(this).attr(_attr))
		_groupName[_ind]=$(this).attr(_attr);
	});
	// count of item in group
	for(var i=0; i<_group.length; i++) _groupCount[i]=0; //clear array
	_items.each(function(){
		for(var i=0; i<_group.length; i++) {
			if ($(this).attr(_attr)==_groupName[i]) _groupCount[i]++;
		};
	});
	//length to shift
	for(var j=0; j<_group.length; j++) {
		var tmp=0, i=0;
		do {
			tmp+= _groupCount[i];
			i++;
		} while (i!=j+1);
		_groupLength[j]=tmp;
	};
	groupLength = _groupLength;
	appendList(_groupLength, _attr);
	shiftItems(_group, _itemWidth, _itemsHolder, _duration, _groupLength);
	setItemActive(index);
}
function shiftItems(_group, _itemWidth, _itemsHolder, _duration, _groupLength){
	var _marginStart=0, _marginEnd=0;
	_group.click(function(){
		_group.removeClass('active');
		$(this).addClass('active');
		var index = $(_group).index(this);
		var _holdG = $('div.slider-frame');
		var _holder = _holdG.find('.slider-hold');
		var _ul = _holder.find('ul');
		var _mM = parseInt(_ul.width());
		if (index != 0) {
			_marginEnd = _mM + (_itemWidth * _groupLength[index - 1])
			current_index = groupLength[index-1];
		}
		else {
			_marginEnd = _mM;
			current_index = 0;
		}

		_itemsHolder.animate({marginLeft: -_marginEnd},_duration);
		_marginStart=_marginEnd;
	});
}
function appendList(_groupLength, _attr){
	var _holdG = $('div.slider-frame');
	var activeItemOfGroup=0;
	_holdG.each(function(_h){
		var _holder = $(this).find('.slider-hold');
		var _ul = _holder.find('ul');
		var _li = _ul.find('li');
		var _prevBtn = $('.caruselhold').find('a.link-prev');
		var _nextBtn = $('.caruselhold').find('a.link-next');
		var _duration = 800;
		var marginNow= _mM;
		
		var _mM = parseInt(_ul.width());
		var _aFlag = false;

		_ul.clone(true).insertAfter(_ul);
		_ul.clone(true).insertBefore(_ul);
		_holder.css('marginLeft', -_mM);
		
		_prevBtn.click(function(){
			if(!_aFlag) {
				_aFlag = true;
				_holder.animate({
					'marginLeft':'+=' + parseInt(_li.innerWidth())
				},_duration,function(){
					current_index--;
					if (current_index < 0) current_index += nb_item;
					marginNow = parseInt(_holder.css('margin-left'));
					findActive(marginNow, _ul, _li, _groupLength, _attr);
					if(parseInt(_holder.css('marginLeft'))==0) _holder.css('marginLeft',-_mM);
					_aFlag = false;
				});
				
			}
			return false;
		});
		_nextBtn.click(function(){
			if(!_aFlag) {
				_aFlag = true;
				_holder.animate({
					'marginLeft':'-=' + parseInt(_li.innerWidth())
				},_duration,function(){
					current_index++;
					marginNow = parseInt(_holder.css('margin-left'));
					findActive(marginNow, _ul, _li, _groupLength, _attr );
					if(parseInt(_holder.css('marginLeft'))==-2*_mM) _holder.css('marginLeft',-_mM);
					_aFlag = false;
				});
			}
			return false;
		});
	});
}
function findActive(marginNow, _ul, _li, _groupLength, _attr){
	var _groupHolder = $('.slider-group > ul');
	var _group = _groupHolder.find('>li');
	var pos = ((parseInt(_ul.width()) + marginNow) / _li.innerWidth());
	if (Math.abs(pos) == _li.length)
		pos = 0;
	if (pos < 0) {
		_group.removeClass('active');
		className = _li.eq(Math.abs(pos)).attr(_attr).replace(" active","");
		_groupHolder.find('.' + className).addClass('active');
	}
	else 
		if (pos > 0) {
			_group.removeClass('active');
			className =  _li.eq(_li.length - Math.abs(pos)).attr(_attr).replace(" active","");
			_groupHolder.find('.' + className ).addClass('active');
		}
		else 
			if (pos == 0) {
				_group.removeClass('active');
				_group.eq(0).addClass('active');
			}
}

function setItemActive(index)
{
	var _hold = holder.find('.slider-hold');
	var _ul = _hold.find('ul');
	var _mM = parseInt(_ul.width());
	var _li = _ul.find('li');
	var _itemsHolder = holder.children('div.slider-hold');
	
	var _list = _itemsHolder.children('ul').children();
	var diff = (index - current_index);
	if ((index - current_index) < -4)
		diff += nb_item;
	_hold.animate({
		'marginLeft':'-=' + diff *parseInt(_li.innerWidth())
	},800,function(){

		_list.removeClass('active').eq(index).addClass('active');
		_list.eq(index + nb_item).addClass('active');
		_list.eq(index + 2*nb_item).addClass('active');
		marginNow = parseInt(_hold.css('margin-left'));
	
		if(marginNow<=-2*_mM) _hold.css('marginLeft', marginNow + _mM);
		
		findActive(marginNow, _ul, _li, groupLength, attr);
	});
	current_index = index;
}






