(function( $ ){
        $.fn.addNewSlider = function( m_options ) {
                var setting = $.extend( {
				    sliderVertical: false,
                    sliderParent: "",
                    slider: ".slider",
                    sliderItem: ".slider-item",
                    sliderItemWidth: 100,
					sliderItemHeight: 102,
                    sliderItemDivider: 100,
                    cBtnPrev: '#btn-prev',
                    cBtnNext: '#btn-next',
                    cBtnActiveClass: 'btn-active',
                    cBtnPassiveClass: 'btn-passive',
                    sliderMaxWidth: 9999999,
					sliderMaxHeight: 9999999,
                    countVisibleItems: 0,
                    sliderStartLeft: 0,
                    sliderStartTop: 0
                }, m_options );
				
				var sliderItems = $( setting.sliderParent + ' ' + setting.slider ).children();
                var countSliderItems = sliderItems.length;
                var minLeft = -1 * ( setting.sliderItemWidth + setting.sliderItemDivider ) * ( countSliderItems - setting.countVisibleItems);
                var minTop = -1 * ( setting.sliderItemHeight + setting.sliderItemDivider ) * ( countSliderItems - setting.countVisibleItems);
	
                if( setting.sliderVertical )
				{
					$( setting.sliderParent + ' ' + setting.sliderItem ).css( 'height', setting.sliderItemHeight + 'px' );
					$( setting.sliderParent + ' ' + setting.slider ).css( 'height', setting.sliderMaxHeight + 'px' );
					$( setting.sliderParent + ' ' + setting.slider ).css( 'top', setting.sliderStartTop * ( setting.sliderItemHeight + setting.sliderItemDivider ) + 'px' );
					$( setting.sliderParent + ' ' + setting.sliderItem ).css( 'margin-bottom', setting.sliderItemDivider + 'px' );
				}
				else
				{
					$( setting.sliderParent + ' ' + setting.sliderItem ).css( 'width', setting.sliderItemWidth + 'px' );
					$( setting.sliderParent + ' ' + setting.slider ).css( 'width', setting.sliderMaxWidth + 'px' );
					$( setting.sliderParent + ' ' + setting.slider ).css( 'left', setting.sliderStartLeft * ( setting.sliderItemWidth + setting.sliderItemDivider ) + 'px' );
					$( setting.sliderParent + ' ' + setting.sliderItem ).css( 'margin-right', setting.sliderItemDivider + 'px' );				
				}
			
                if ( ( minLeft >= 0 ) || ( setting.sliderVertical && ( minTop >= 0 ) ) )  {
                    $( setting.sliderParent + ' ' + setting.cBtnPrev ).hide();
                    $( setting.sliderParent + ' ' + setting.cBtnNext ).hide();
                }

				if( setting.sliderVertical )
				{
					$( setting.sliderParent + ' ' + setting.cBtnPrev ).click( function() {
						var currTop = $( setting.sliderParent + ' ' + setting.slider ).css( 'top' );
						currTop = currTop.substring( 0 ,currTop.length - 2 );
						var newTop = 1*currTop + ( setting.sliderItemHeight + setting.sliderItemDivider );
						
						if( newTop == 0 )
						{
							$( this ).removeClass( setting.cBtnActiveClass );
							$( this ).addClass( setting.cBtnPassiveClass );
						}
						if( newTop <= 0 )
						{
							$( setting.sliderParent + ' ' + setting.slider ).css( 'top', newTop + 'px' );
						}
						if ( newTop != minTop )
						{
							$( setting.sliderParent + ' ' + setting.cBtnNext ).removeClass( setting.cBtnPassiveClass );
							$( setting.sliderParent + ' ' + setting.cBtnNext ).addClass( setting.cBtnActiveClass );
						}
					} );
					$( setting.sliderParent + ' ' + setting.cBtnNext ).click( function() {

						var currTop = $( setting.sliderParent + ' ' + setting.slider ).css( 'top' );
						currTop = currTop.substring( 0 ,currTop.length - 2 );
						var newTop = 1*currTop - ( setting.sliderItemHeight + setting.sliderItemDivider );

						if ( newTop < 0 )
						{
							$( setting.sliderParent + ' ' + setting.cBtnPrev ).removeClass( setting.cBtnPassiveClass );
							$( setting.sliderParent + ' ' + setting.cBtnPrev ).addClass( setting.cBtnActiveClass );
						}
						if( newTop >=  minTop )
						{
							$( setting.sliderParent + ' ' + setting.slider ).css( 'top', newTop + 'px' );
						}
						if ( newTop == minTop )
						{
							$( this ).removeClass( setting.cBtnActiveClass );
							$( this ).addClass( setting.cBtnPassiveClass );
						}
					} );					
				}
				else
				{
					$( setting.sliderParent + ' ' + setting.cBtnPrev ).click( function() {
						var currLeft = $( setting.sliderParent + ' ' + setting.slider ).css( 'left' );
						currLeft = currLeft.substring( 0 ,currLeft.length - 2 );
						var newLeft = 1*currLeft + ( setting.sliderItemWidth + setting.sliderItemDivider );
						
						if( newLeft == 0 )
						{
							$( this ).removeClass( setting.cBtnActiveClass );
							$( this ).addClass( setting.cBtnPassiveClass );
						}
						if( newLeft <= 0 )
						{
							$( setting.sliderParent + ' ' + setting.slider ).css( 'left', newLeft + 'px' );
						}
						if ( newLeft != minLeft )
						{
							$( setting.sliderParent + ' ' + setting.cBtnNext ).removeClass( setting.cBtnPassiveClass );
							$( setting.sliderParent + ' ' + setting.cBtnNext ).addClass( setting.cBtnActiveClass );
						}
					} );
					$( setting.sliderParent + ' ' + setting.cBtnNext ).click( function() {

						var currLeft = $( setting.sliderParent + ' ' + setting.slider ).css( 'left' );
						currLeft = currLeft.substring( 0 ,currLeft.length - 2 );
						var newLeft = 1*currLeft - ( setting.sliderItemWidth + setting.sliderItemDivider );

						if ( newLeft < 0 )
						{
							$( setting.sliderParent + ' ' + setting.cBtnPrev ).removeClass( setting.cBtnPassiveClass );
							$( setting.sliderParent + ' ' + setting.cBtnPrev ).addClass( setting.cBtnActiveClass );
						}
						if( newLeft >=  minLeft )
						{
							$( setting.sliderParent + ' ' + setting.slider ).css( 'left', newLeft + 'px' );
						}
						if ( newLeft == minLeft )
						{
							$( this ).removeClass( setting.cBtnActiveClass );
							$( this ).addClass( setting.cBtnPassiveClass );
						}
					} );
				}

            };})( jQuery );
