$(document).ready(function(){
	var change_speed = 600; // in ms
	var _hold = $('#gallery');
	if(_hold.length){
		var list_hold = _hold.find('ul.hold');
		var _list = list_hold.children();
		if(_list.length > 1){
			var btn_hold = $('<ul class="paging"></ul>');
			for(var i = 0; i < _list.length; i++){
				btn_hold.append('<li><a href="#">'+((i+1 < 10)?('0'+(i+1)):(i+1))+'</a></li>');
			}
			var _btn = btn_hold.find('a');
			btn_hold.prepend('<li class="prev"><a href="#">&lt;</a></li>').append('<li class="next"><a href="#">&gt;</a></li>');
			_hold.append(btn_hold);
			var btn_prev = btn_hold.find('li.prev a');
			var btn_next = btn_hold.find('li.next a');
			
			var _step = _list.parent().outerWidth();
			var _a = _list.index(_list.filter('.active:eq(0)'));
			if(_a == -1) _a = 0;
			
			_list.removeClass('active').css('left', _step).eq(_a).addClass('active').css('left', 0);
			_btn.eq(_a).addClass('active');
			btn_prev.click(function(){
				if(_a > 0) moveEl(_a-1, false);
				else moveEl(_list.length - 1, false);
				return false;
			});
			btn_next.click(function(){
				if(_a < _list.length - 1) moveEl(_a+1, true);
				else moveEl(0, 1);
				return false;
			});
			_btn.click(function(){
				if(_a > _btn.index(this)) moveEl(_btn.index(this), false);
				else moveEl(_btn.index(this), true);
				return false;
			});
		}
		else{
			_list.addClass('active').css('left', 0);
		}
		var _flag = true;
		function moveEl(_ind, _f){
			if(_flag && _ind != _a){
				list_hold.height(list_hold.height());
				_flag = false;
				_btn.eq(_a).removeClass('active');
				_btn.eq(_ind).addClass('active');
				if(_f){
					_list.eq(_a).removeClass('active').animate({left: -_step}, change_speed);
					_list.eq(_ind).addClass('active').css('left', _step).animate({left: 0}, change_speed, function(){
						_a = _ind;
						_flag = true;
					});
				}
				else{
					_list.eq(_a).removeClass('active').animate({left: _step}, change_speed);
					_list.eq(_ind).addClass('active').css('left', -_step).animate({left: 0}, change_speed, function(){
						_a = _ind;
						_flag = true;
					});
				}
				list_hold.height('auto');
			}
		}
	}
});
