/*
 * Pagered carusel
 * @requires jQuery v1.4
 *
 * Copyright 2010
 *
 * Webway IT Labs | www.webway.ru
 *
 */
 /*

 */

 jQuery(document).ready(function() {
	setTimeout(function() {
	 $('.gallery').PageredCarusel({nums : true})
/*	$('.sectswr').PageredCarusel({
			gallered: '.vert',
			gallery: 'li',
			pagerNext : '.rarrow',
			pagerPrev : '.larrow',
			autoHeight : true
		})*/
	$('.sectswr2').PageredCarusel({
			gallered: '.vert',
			gallery: 'li',
			pagerDiv : '.spager',
			pagerO : '<span class="href"></span>',
			pagerActive : '<span class="corcolor"></span>',
			autoHeight : true
		})
	}, 0);


 });
 
 $.fn.PageredCarusel = function(options) {
	  var settings = {
				out: 'gall-wr',
				gallered: '.vert',
				gallery: 'li',
				pagerDiv : false,
				pagerNext : '.i_snext',
				pagerPrev : '.i_sprev',
				pagerO : '<span class="href"></span>',
				pagerActive : '<span class="active"></span>',
				pDott : '<span>...</span>',
				centerPCount : 2,
				leftPCount : 1,
				nums : false,
				autoHeight : false
		};
	   settings = $.extend(settings, options);

	if( this.size() == 0 ) return;

$.fn.PageredCarusel.init = function(){



	var ths = this

	this.g = $(settings.gallered, this)


	this.list = $(settings.gallery, this.g),
	this.pagerNext = $(settings.pagerNext,this),
	this.pagerPrev = $(settings.pagerPrev,this)
	this.active = 0,
	this.pagerObj = $(settings.pagerDiv, this),
	this.pagerO = $(settings.pagerO)
	this.pagerActive = $(settings.pagerActive)

	if(this.list.length > 1){
		if(settings.autoHeight){
			initListHeight(this.list.length,this.list)
		}
		this.list.hide()
		initPager(this.list.length,0,this.list,this)
	}else{
		this.pagerPrev.hide();
		this.pagerNext.hide();
		this.pagerObj.hide();
	}
	this.pagerNext.bind('click',function(){
		if(!ths.lock && ths.active<ths.list.length -1)
		initPager(ths.list.length,ths.active+1,ths.list,ths)
	//	initPager(list.length,0,list)	
		return false;
	})
	this.pagerPrev.bind('click',function(){
		initPager(ths.list.length,ths.active-1,ths.list,ths)
		return false;
	})
	$('.cl_o',ths.list.not(':last')).addClass('i_clicable').bind('click',function(){
		ths.pagerNext.click()
	})
	function initPager(count,active,lists,o){
		
		if(!ths.lock){
		
			ths.lock = true;
			active = active*1
			lists.filter(':eq(' + o.active + ')').fadeOut('100',function(){
				$(lists[active]).show()
				setTimeout(function() {
					$(lists[active]).css({zoom:1})
				},0)
				$(lists[active])[0].removeAttribute("filter")
				o.lock = false;
			})
			
			if(!settings.pagerDiv){
				o.active = buttonsPager(count,active,lists,o);
			}else{
				o.active = showPager(count,active,lists,o);
			}
		
		}
	}

	function buttonsPager(count,active,lists,o){
			if(active > 0){
				o.pagerPrev.css({'visibility':'visible'})
			}else{
				o.pagerPrev.css({'visibility':'hidden'})
			}
			if(active == count-1){
				o.pagerNext.css({'visibility':'hidden'})
			}else{
				o.pagerNext.css({'visibility':'visible'})
			}
			if(settings.nums){
				$('b',o.pagerPrev).html(active)
				$('b',o.pagerNext).html(count - active - 1)			
			}	
		return active
	}

	function showPager(count,active,lists,o){



		var str= $('');

		var leftUpp;
		var rightUpp;
		var centerPCount = settings.centerPCount;
		var leftPCount = settings.leftPCount;
		
		for(ii = 0; ii < count ; ii ++ ){

			if( ( ( ii < leftPCount || ii > count - leftPCount - 1) || (ii > active - (centerPCount + 1) && ii < active + (centerPCount + 1) ) ) && ii != active ){
				str = str.add(o.pagerO.clone().html(ii + 1).attr('val',ii))
			}
			if((ii > leftPCount -1 && ii < active - centerPCount) && !leftUpp ){
				leftUpp = true;
				str =  str.add($(settings.pDott))
			}

			if( ( ii < count - leftPCount && ii > active + centerPCount ) && !rightUpp ){
				rightUpp = true;
				str = str.add($(settings.pDott))
			}
			if(ii == active ){

				str = str.add(o.pagerActive.clone().html(ii + 1))
			}
		}
	
		var cCl = o.pagerObj.empty().append(str)
		
		
		cCl.find('.href').unbind().bind('click',function(){

			initPager(count,parseInt($(this).attr('val'),10),lists,o)
			return false;
		})
	return parseInt(active,10)
/**/		
	}

}
	function initListHeight(length,lists){
		var tmH = 0
		for(kk=0;kk<length;kk++){
			var curH = $(lists[kk]).height();
			tmH = tmH > curH ? tmH : curH;
		}
		lists.each(function(){
			$(this).height(tmH)
		})
	}

	this.each($.fn.PageredCarusel.init)



}


/*plagin*/



