/*
 * jQuery galleryScroll v1.4.0 
 *
 * Copyright (c) 2008 Taranets Aleksey
 * email: aleks_tar@ukr.net
 * Licensed under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 */

/*
	************* OPTIONS ************************************** default ****************
	btPrev         - link for previos [selector]    	btPrev: 'a.link-prev'
	btNext         - link for next [selector]		btNext: 'a.link-next'
	holderList     - image list holder [Tag name]		holderList: 'div'
	scrollElParent - list [Tag name]			scrollElParent: 'ul'
	scrollEl       - list element [Tag name]		scrollEl: 'li'
	slideNum       - view slide numbers [boolean]		slideNum: false
	duration       - duration slide [1000 - 1sec]		duration : 1000
	step           - slide step [int]			step: false
	circleSlide    - slide circle [boolean]			circleSlide: true
	disableClass   - class for disable link	[string] 	disableClass: 'disable'
	funcOnclick    - callback function			funcOnclick: null
	innerMargin    - inner margin, use width step [px]      innerMargin:0
	autoSlide      - auto slide [1000 - 1sec]               autoSlide:false
	*************************************************************************************
*/
jQuery.fn.galleryScroll = function(_options){
	// defaults options	
	var _options = jQuery.extend({
		btPrev: 'a.link-prev',
		btNext: 'a.link-next',
		holderList: 'div',
		scrollElParent: 'ul',
		scrollEl: 'li',
		duration : 1000,
		step: false,
		circleSlide: true,
		disableClass: 'disable',
		funcOnclick: null,
		innerMargin:0
		
	},_options);

	return this.each(function(){
		var _this = $(this);

		var _liWidth = 0;
		jQuery(_options.scrollEl,_this).each(function(){
			_liWidth += jQuery(this).innerWidth();		
		});
		var _liSum = _liWidth;
		
		var _gWidth = jQuery(_options.holderList,_this).innerWidth() - (2*370);
		var _margin = 0;
		var f = 0;
		var _step = 0;
		var _timerSlide = null;
		_step = Math.round(_liSum / jQuery(_options.scrollEl,_this).length);
		
		if (!_options.circleSlide) {
			if (_options.innerMargin == _margin)
				jQuery(_options.btPrev,_this).addClass(_options.disableClass);
		}
	
		// click button 'Next'
		jQuery(_options.btNext,_this).click(function(){
			jQuery(_options.btPrev,_this).removeClass(_options.disableClass);
			
			if (_margin + _step  > _liSum - _gWidth - _options.innerMargin) {
				if (_margin != _liSum - _gWidth - _options.innerMargin) {
					_margin = _liSum - _gWidth  - _options.innerMargin;
				} else {
					_margin = -_options.innerMargin;
				}
			} else {
				_margin = _margin + _step;
			}
			
			jQuery(_options.scrollElParent,_this).animate({marginLeft: -_margin+"px"}, {queue:false,duration: _options.duration });
			
						
			if (_options.slideNum && !_options.step) jQuery.fn.galleryScroll.numListActive(_margin,_options.slideNum,_gWidth,_lastSection);		
			if (jQuery.isFunction(_options.funcOnclick)) {
				_options.funcOnclick.apply(_this);
			}
			return false;
		});
		// click button 'Prev'
		jQuery(_options.btPrev, _this).click(function(){
			jQuery(_options.btNext,_this).removeClass(_options.disableClass);
			if (_margin - _step == -_step + _options.innerMargin ) {
				if (!_options.circleSlide) {
					jQuery(this).addClass(_options.disableClass);
					_margin = -_options.innerMargin;
				} else 	{_margin = _liSum - _gWidth +_options.innerMargin;f=1;}
			}
			else {
				if (_margin - _step < -_options.innerMargin) {
					if (_margin != -_options.innerMargin) {
						_margin = -_options.innerMargin;
					} else {
						_margin = _liSum - _gWidth - _options.innerMargin;
						f=0;
					}
				}
				else {_margin = _margin - _step;f=0;};
			}
			if (!_options.circleSlide && _margin == _options.innerMargin) jQuery(this).addClass(_options.disableClass);
			
			jQuery(_options.scrollElParent,_this).animate({marginLeft: -_margin + "px"}, {queue:false, duration: _options.duration});
			
			if (_options.slideNum && !_options.step) jQuery.fn.galleryScroll.numListActive(_margin,_options.slideNum,_gWidth,_lastSection);
			
					
			if (jQuery.isFunction(_options.funcOnclick)) {
				_options.funcOnclick.apply(_this);
			}
			return false;
		});
		
		jQuery(window).resize(function(){
			_liWidth = 0;
			jQuery(_options.scrollEl,_this).each(function(){
				_liWidth += jQuery(this).outerWidth(true);		
			});
			
			_gWidth = jQuery(_options.holderList,_this).innerWidth() - (2*370);
			
			if (_liSum - _gWidth - _options.innerMargin  < _margin) {
				_margin = _liSum - _gWidth - _options.innerMargin;
				if (!_options.circleSlide) jQuery(_options.btNext, _this).addClass(_options.disableClass);
				jQuery(_options.scrollElParent,_this).animate({marginLeft: -_margin + "px"}, {queue:false, duration: _options.duration});
			};
		});
	});
}

function initPage(){
	$('#carusel').galleryScroll({
		btPrev:'a.link-prev',
		btNext:'a.link-next',
		innerMargin:370
	});
}


if (window.addEventListener)
	window.addEventListener("load", initPage, false);
else if (window.attachEvent)
	window.attachEvent("onload", initPage);