$(document).ready(function(){
		slideshow($('.slideshow'));
		$('.control').galleryScroll();
});

/*--- function slideshow ---*/
function slideshow(gal_holders){
	gal_holders.each(function(){
		var _timer;
		var _duration = 8000;
		var gal_hold = $(this);
		var list_hold = gal_hold.find('.box > ul');
		var btn_next = gal_hold.find('.down a');
		var btn_prev = gal_hold.find('.up a');
		var _loader = $('<div class="load-icon"></div>');
		list_hold.parent().append(_loader);
		var _step = list_hold.parent().width();
		var _a = 0;
		var _list = list_hold.children();
		_list.each(function(){
			this._url = $(this).html();
		});
		var btn_list = $('<ul></ul>');
		for(var i = 1; i < _list.length + 1; i++){ btn_list.append('<li><a href="#">object' + i + '</a></li>');}
		btn_list = gal_hold.find('.indicator a');
		btn_list.eq(_a).parent().addClass('active');

		var btn_list2 = $('<ul></ul>');
		for(var i = 1; i < _list.length + 1; i++){ 
			  btn_list2.append('<li><a href="#">object' + i + '</a></li>');
 
	  }
		 
		btn_list2 =$("div").find(".box a");
		btn_list2.eq(_a).parent().addClass('active');
   
		var prevEl = $('<li></li>');
		var thisEl = $('<li></li>');
		var nextEl = $('<li></li>');
		list_hold.css('margin-left', -_step).empty().append(prevEl, thisEl, nextEl);
		_loader.fadeIn(100);
		
		var _html = $.ajax({url: _list[_a]._url,async: false}).responseText; 
		var urls=_list[_a]._url.replace("&amp;","&");
		var _data = $.ajax({url: urls+"&action=data",async: false}).responseText;
		_loader.fadeOut(100, function(){
		            var _el = $(_html);
					_list[_a]._html = _el;
					 $("#common_desc_div_"+_a).empty().append(_data);
					 $("#common_desc_div").empty().append(_data);
					 thisEl.html(_list[_a]._html);
				});
		
		function changeP(_ind){
			if(!list_hold.is(':animated') && _ind != _a){
				if(_timer) clearTimeout(_timer);
				if(_ind == -1) _ind = _list.length - 1;
				else if(_ind == _list.length) _ind = 0;
				btn_list.eq(_a).parent().removeClass('active');
				btn_list.eq(_ind).parent().addClass('active');
				btn_list2.eq(_a).parent().removeClass('active');
				btn_list2.eq(_ind).parent().addClass('active');
				if(_list[_ind]._html){
					prevEl.html(_list[_ind]._html);
					$("#common_desc_div").empty().append($("#common_desc_div_"+_ind).html());
					list_hold.animate({marginLeft: -50}, 500, function(){
						thisEl.html(prevEl.html());
						list_hold.css('margin-left', -_step);
						_a = _ind;
						_timer = setTimeout(function(){ changeN(_a +1);}, _duration);
					});
				}
				else{
					_loader.fadeIn(100, function(){
			
					      var _html = $.ajax({url: _list[_ind]._url,async: false}).responseText; 
					      var _el = $(_html);
					      var urls=_list[_ind]._url.replace("&amp;","&");
					      var _data = $.ajax({url: urls+"&action=data",async: false}).responseText; 
                          _loader.fadeOut(100, function(){
									_list[_ind]._html = _el;
									prevEl.html(_el);
									list_hold.animate({marginLeft: -50}, 500, function(){
									    $("#common_desc_div_"+_ind).empty().append(_data);
									      $("#common_desc_div").empty().append(_data);
										thisEl.html(prevEl.html());
										
										list_hold.css('margin-left', -_step);
										_a = _ind;
										_timer = setTimeout(function(){ changeN(_a +1);}, _duration);
									});
								});
			
					});
				}
			}
		}
		function changeN(_ind){
			if(!list_hold.is(':animated') && _ind != _a){
				if(_timer) clearTimeout(_timer);
				if(_ind == -1) _ind = _list.length - 1;
				else if(_ind == _list.length) _ind = 0;
				btn_list.eq(_a).parent().removeClass('active');
				btn_list.eq(_ind).parent().addClass('active');
				btn_list2.eq(_a).parent().removeClass('active');
				btn_list2.eq(_ind).parent().addClass('active');
				if(_list[_ind]._html){
				    $("#common_desc_div").empty().append($("#common_desc_div_"+_ind).html());
					nextEl.html(_list[_ind]._html);
					list_hold.animate({marginLeft: -2*_step}, 500, function(){
						thisEl.html(nextEl.html());
						list_hold.css('margin-left', -_step);
						_a = _ind;
						_timer = setTimeout(function(){ changeN(_a +1);}, _duration);
					});
				}
				else{
					_loader.fadeIn(100, function(){
						 
						var urls=_list[_ind]._url.replace("&amp;","&");
					    var _html = $.ajax({url: _list[_ind]._url,async: false}).responseText; 
					    var _data = $.ajax({url: urls+"&action=data",async: false}).responseText; 
					   		var _el = $(_html);
								_loader.fadeOut(100, function(){
									_list[_ind]._html = _el;
									prevEl.html(_el);
									$("#common_desc_div_"+_ind).empty().append(_data);
									$("#common_desc_div").empty().append(_data);
									
									list_hold.animate({marginLeft: -50}, 500, function(){
									    
										thisEl.html(prevEl.html());
										list_hold.css('margin-left', -_step);
										_a = _ind;
										_timer = setTimeout(function(){ changeN(_a +1);}, _duration);
									});
								});
						 
						 
					});
				}
			}
		}
		if(_list.length > 1){
			btn_next.click(function(){
				changeN(_a + 1);
				return false;
			});
			btn_prev.click(function(){
				changeP(_a - 1);
				return false;
			});
			btn_list.click(function(){
				var _ind = btn_list.index(this);
				if(_ind > _a) changeN(_ind);
				if(_ind < _a) changeP(_ind);
				return false;
			});
			btn_list2.click(function(){
				var _ind = btn_list2.index(this);
				if(_ind > _a) changeN(_ind);
				if(_ind < _a) changeP(_ind);
				return false;
			});
			_timer = setTimeout(function(){ changeN(_a +1);}, _duration);
			list_hold.hover(function(){
				if(_timer) clearTimeout(_timer);
			}, function(){
				if(_timer) clearTimeout(_timer);
				_timer = setTimeout(function(){ changeN(_a +1);}, _duration);
			});
		}
		else{
			btn_next.click(function(){ return false;});
			btn_prev.click(function(){ return false;});
			btn_list.click(function(){ return false;});
			btn_list2.click(function(){ return false;});
		}
	});
}


