

function eap_init(){
function srchMaxV(v) {
  var maxV = 0;  
  for (i=0; i<v.length; i++) { 
    if (v[i] > maxV) { maxV = v[i]; }
  }
  return maxV;
} 
(function( $ ){
	var methods = {
		init : function( options ) {
			var settings = $.extend( {
				eap:true,
				animation: 'h_slider',
				speed: 400,
				easing: 'easeOutQuad',
				width: $(this).parent().width(),
				start: 1,
				autoplay: 0,
				autoplay_interval: 4000,
				stop_on_hover: true,
				image_frames: true,
				index_start: false,
				auto_height: false,
				arrow_enable: false,
				harrow_height: 200,
				content_resize: false,
				height:false
			}, options);		
			return this.each(function(){
				var me = this;
				
				settings.pages = $(this).find('.eap-section').length;
				settings.start = settings.start<1?1:settings.start;
				settings.start = settings.start>settings.pages?settings.pages:settings.start;
				settings.page = settings.start-2;
				settings.using = false;
				settings.pause = false;
				settings.speed = parseInt(settings.speed);
				settings.autoplay = parseInt(settings.autoplay);
				settings.autoplay_interval = parseInt(settings.autoplay_interval);
				settings.stop_on_hover = parseInt(settings.stop_on_hover)?true:false;
				settings.image_frames = parseInt(settings.image_frames)?true:false;
				settings.index_start = parseInt(settings.index_start)?true:false;
				settings.auto_height = parseInt(settings.auto_height)?true:false;
				settings.harrow_height = parseInt(settings.harrow_height);
				settings.content_resize = parseInt(settings.content_resize);
				
				settings.width = settings.width&&parseInt(settings.width)>0?settings.width:$(this).parent().width();
				$(this).width(settings.width);
				$(this).find('.eap-nav-total-pages').html(settings.pages);

		//--
				settings.m_width = settings.width;
				settings.additional_height = 0;
				if(settings.arrow_enable=='eap-arrow-horizontal' || settings.arrow_enable=='eap-arrow-vertical'){
					$(this).find('.eap-viewport')
						.before( $('<div></div>').addClass('eap-nav-arrow nav-arrow-prev eap-previous') )
						.after( '<div style="clear:both;"></div>' )
						.after( $('<div></div>').addClass('eap-nav-arrow nav-arrow-next eap-next') )
						;
					if(settings.arrow_enable=='eap-arrow-horizontal'){
						settings.width = settings.width - $(this).find('.eap-nav-arrow.nav-arrow-prev').width() - $(this).find('.eap-nav-arrow.nav-arrow-next').width();
						if(settings.harrow_height>0){
							$(this).find('.eap-nav-arrow').height(settings.harrow_height);
						}else{
							$(this).find('.eap-nav-arrow').css('height','100%');
						}
					}else if(settings.arrow_enable=='eap-arrow-vertical'){
						settings.additional_height = $(this).find('.eap-nav-arrow.nav-arrow-prev').height() + $(this).find('.eap-nav-arrow.nav-arrow-next').height();
					}
				}
		//--	
				$(this).find('.eap-paginated-be').addClass('eap-paginated');
				$(this).find('.eap-viewport').width(settings.width);
				$(this).find('.eap-section').width( settings.width );
				$(this).find('.eap-index').width( settings.m_width );
				$(this).find('.eap-viewport-cont').width(settings.m_width);		
		//--
				if(settings.height<=0){
					var heights = [];
					$(this).find('.eap-section').each(function(){
						heights[heights.length]=$(this).outerHeight(true);
					});
					settings.v_height = srchMaxV(heights);						
				}else{
					settings.v_height = settings.height;
				}
		
				if(settings.animation=='v_slider'){
					$(this).find('.eap-section').height(settings.v_height);	
				}
				
				film_width = settings.pages * $(this).width();
				$(this).find('.eap-paginated').width( film_width ).css('left',0).addClass(settings.animation);
				
				$(this).find('.eap-viewport-cont').height( parseInt(settings.v_height) + parseInt(settings.additional_height));	
				$(this).find('.eap-viewport').height( settings.v_height );
			//--- xxxxxxxxxxxxx
				$(this).data(settings);
				
				$(this).find('.eap-bar-placeholder').append( $(this).find('.eap-bar-cont') );
				$(this).find('.eap-nav-placeholder').append( $(this).find('.eap-nav-cont') );
				
				$(this).find('.eap-previous').unbind('click').click(function(){ $(this).closest('.eap-wrap').EpSlider('prev'); });
				$(this).find('.eap-next').unbind('click').click(function(){ $(this).closest('.eap-wrap').EpSlider('next'); });
				$(this).find('.eap-play').unbind('click').click(function(){ $(this).closest('.eap-wrap').EpSlider('play'); });
				$(this).EpSlider('next');
				
				$(this).find('.eap-index-item').unbind('click').click(function(){
					var _p = parseInt($(this).attr('rel')) -1;
					if(_p>=0){
						$(this).closest('.eap-wrap').data('page',_p);
						$(this).closest('.eap-wrap').EpSlider('update_nav');
						$(this).closest('.eap-wrap').EpSlider('set_page');
					}
				});
				$(this).find('.eap-show-index').unbind('click').click(function(){ $(this).closest('.eap-wrap').EpSlider('show_index'); });
				
				if(settings.autoplay&&settings.stop_on_hover)$(this).hover(function(){ $(this).data('stop',true); },function(){ $(this).data('stop',false); });
				if(!settings.autoplay){$(this).find('.eap-play').hide();}
				var id = '#'+$(this).attr('id');
				setTimeout('jQuery("'+id+'").EpSlider(\'loop\');', $(this).data('autoplay_interval') );
		
				if(settings.image_frames){
					$(this).find('.eap-section img').addClass('eap-img-frame');
				}
			
				if(settings.index_start && settings.start==1){	
					$(this).EpSlider('play');
					$(this).EpSlider('show_index');
				}								
			});
		},
		
		next : function (){
			return this.each(function() {
				if($(this).data('eap')){
					if( $(this).data('using') ){ console.log('using'+$(this).data('using')); return;}else{ $(this).data('using',true); }
					var page = $(this).data('page');
					var pages = $(this).data('pages');
					if( page < pages-1){
						page++;
					}else{
						page=0;
					}				
					$(this).data('page',page);
					$(this).EpSlider('update_nav');
					$(this).EpSlider('animate_set_page');							
				}
			});
		},
		
		prev : function (){
			return this.each(function() {
				if($(this).data('eap')){
					if( $(this).data('using') ){ console.log('using'+$(this).data('using')); return;}else{ $(this).data('using',true); }
					var page = $(this).data('page');
					var pages = $(this).data('pages');					
					if(page>0){
						page--;
					}else{
						page=pages-1;
					}
					$(this).data('page',page);
					$(this).EpSlider('update_nav');
					$(this).EpSlider('animate_set_page');		
				}
			});			
		},
		
		play : function () {
			return this.each(function() {
				if($(this).data('eap')){
					var pause = $(this).data('pause');
					if(pause){
						$(this).data('pause',false);
						$(this).find('.eap-play').removeClass('pause');
						$(this).EpSlider('next');
					}else{
						$(this).data('pause',true);
						$(this).find('.eap-play').addClass('pause');
					}		
				}
			});				
		},
		
		show_index : function () {
			return this.each(function() {
				if($(this).data('eap')){
					var id = '#'+$(this).attr('id');
					var nav = $(this).find('.eap-nav');
					var ind = $(this).find('.eap-index');	
					var eap = $(this).find('.eap-paginated');		
					var m_width = $(this).data('m_width');		
					//-----
					if( $(eap).is(':visible') ){		
						$(id).find('.eap-show-index').addClass('showing');
						$(nav).each(function(){if($(this).is('.hide-on-index')){$(this).hide();}});
						$(eap).hide();
						$(id).find('.eap-viewport-cont').stop().hide();
						$(ind).show();	
						//---thumb heights
						if( $(ind).find('.thumb-sep').length==0 ){
							var t_width = $(ind).find('.thumb-1').outerWidth(true);
							t_width = parseInt(t_width)<50? $(ind).find('.thumb-1').attr('width')+20 :t_width;
							$(ind).find('.eap-thumb-wrap').width(t_width);
							t_width = $(ind).find('.eap-thumb-wrap').outerWidth(true);
							t_width = t_width>0?t_width:75;
							var t_perline = parseInt(m_width/t_width);
							var k=1;
							$(ind).find('.eap-thumb-wrap').each(function(i){
								if( ((i+1)%t_perline)==0){
									$(this).appendTo( $(ind).find('.eap-thumb-index') );
									$('<div class="eap-clear thumb-sep"></div>').appendTo( $(ind).find('.eap-thumb-index') );		
								}else{
									$(this).appendTo( $(ind).find('.eap-thumb-index') );	
								}
							});					
						}
						//---								
					}else{
						$(ind).hide();
						$(id).find('.eap-viewport-cont').show();
						$(eap).show();
						$(nav).show();
						$(id).find('.eap-show-index').removeClass('showing');
					}							
				}
			});				
		},
		
		update_nav : function () {
			return this.each(function() {
				if($(this).data('eap')){
					var page = $(this).data('page');
					var pages = $(this).data('pages');
					var nav = $(this).find('.eap-nav');
					var ind = $(this).find('.eap-index');
					//--
					var p = page+1;
					$(nav).find('.eap-nav-page').html(p);
					$(nav).find('.eap-index-item').removeClass('current');
					$(nav).find('.eap-index-item[rel='+p+']').addClass('current');
					if(page==0){
						$(nav).find('.eap-previous').addClass('inactive');
						$(nav).find('.eap-nav-left').animate({'opacity':'0'},500,'linear',function(){$(this).hide();});
					}else{
						$(nav).find('.eap-previous').removeClass('inactive');
						prev_page = p-1;
						$(nav).find('.eap-prev-thumb img:first').attr('src', $(ind).find('.nav-thumb-'+prev_page).attr('src') );
						$(nav).find('.eap-prev-title').html( $(ind).find('.thumb-caption[rel='+prev_page+']').html() );
						$(nav).find('.eap-nav-left').show().animate({'opacity':'1'});
					}
					if(p>=pages){
						$(nav).find('.eap-next').addClass('inactive');
						$(nav).find('.eap-nav-right').animate({'opacity':'0'},500,'linear',function(){$(this).hide();});
					}else{
						$(nav).find('.eap-next').removeClass('inactive');
						next_page = p+1;
						$(nav).find('.eap-next-thumb img:first').attr('src', $(ind).find('.nav-thumb-'+next_page).attr('src') );
						$(nav).find('.eap-next-title').html( $(ind).find('.thumb-caption[rel='+next_page+']').html() );
						$(nav).find('.eap-nav-right').show().animate({'opacity':'1'});
					}
					$(nav).show();							
				}
			});			
		},
		
		set_page : function () {
			return this.each(function() {
				if($(this).data('eap')){
					var eap = $(this).find('.eap-paginated');
					var nav = $(this).find('.eap-nav');
					var ind = $(this).find('.eap-index');
					var animation = $(this).data('animation');
					var width = $(this).data('width');
					var page = $(this).data('page');
					var v_height = $(this).data('v_height');
					//---
					$(ind).hide();
					$(nav).show();
					$(this).find('.eap-show-index').removeClass('showing');
					$(this).find('.eap-viewport-cont').show();
					if(animation=='h_slider'){
						var top = 0;
						var left = -1 * width * page;
						$(eap).css('top',top+'px').css('left',left+'px').show();
						$(this).EpSlider('autoheight');		
						return;
					}else if(animation=='v_slider'){
						var top = (-1 * v_height * page);
						var left = 0;
					}else{
						var p = page+1;			
						var sel = '.eap-page-'+p;
						$(eap).find('.eap-section').hide();
						$(eap).find(sel).css('opacity','1').show();
						$(eap).show();
						$(this).EpSlider('autoheight');				
						return;
					}
					$(eap).css('top',top+'px').css('left',left+'px').show();								
				}
			});				
	
		},
		
		animate_set_page : function(){
			return this.each(function() {
				if($(this).data('eap')){
					var id = '#'+$(this).attr('id');
					var me = this;				
					var nav = $(this).find('.eap-nav');
					var ind = $(this).find('.eap-index');
					var animation = $(this).data('animation');
					var easing = $(this).data('easing');
					var speed = $(this).data('speed');
					var width = $(this).data('width');
					var v_height = $(this).data('v_height');
					var page = $(this).data('page');
					var eap = $(this).find('.eap-paginated');
					//---					
					$(me).trigger('eap_set_page');
					$(ind).hide();
					$(nav).show();
					$(id).find('.eap-show-index').removeClass('showing');
					$(id).find('.eap-viewport-cont').show();
					if(animation=='h_slider'){
						var left = -1 * width * page;
						$(this).EpSlider('autoheight');				
						$(eap).show();
						$(eap).animate( {'left': left+'px'}, parseInt(speed), easing,function(){$(me).data('using',false); } );			
					}else if(animation=='v_slider'){
						var top = (-1 * v_height * page);
						$(eap).animate( {'top': top+'px'}, parseInt(speed), easing,function(){$(me).data('using',false);} );
					}else if(animation=='fade'){
						var p = page+1;
						$(this).EpSlider('autoheight');
						var sel = '.eap-page-'+p;
						var s = parseInt(speed/2);
						var v = $(eap).find('.eap-section:visible').length;
						if(v>1){
							$(eap).find('.eap-section:visible').hide();
							$(eap).find(sel).css('opacity','1').fadeIn(s,easing,function(){$(me).data('using',false);});
						}else{
							$(eap).find('.eap-section:visible').fadeOut(s,easing,function(){
								$(eap).find(sel).css('opacity','1').fadeIn(s,easing,function(){$(me).data('using',false);});
							});						
						}		
					}else{
						$(this).data('using',false);
					}							
				}
			});				
		},
		
		autoheight : function(){
			return this.each(function() {
				if($(this).data('eap')){
					var id = '#'+$(this).attr('id');
					var auto_height = $(this).data('auto_height');
					var page = $(this).data('page');
					var eap = $(this).find('.eap-paginated');
					var additional_height = $(this).data('additional_height');
					if(auto_height && $(id).find('.eap-viewport-cont').is(':visible') ){
						var p = page+1;
						$(id).find('.eap-viewport').animate({'height': ($(eap).find('.eap-page-'+p).height() )+'px'});
						$(id).find('.eap-viewport-cont').animate({'height': ($(eap).find('.eap-page-'+p).height()+additional_height )+'px'});
					}		
				}
			});		
		},
		
		loop : function (){
			return this.each(function() {
				if($(this).data('eap')){
					if( $(this).data('autoplay') ){
						var id = '#'+$(this).attr('id');
						if(!$(this).data('stop')&&!$(this).data('pause') && !$(this).find('.eap-index').is(':visible') )
							$(this).EpSlider('next');
						setTimeout('jQuery("' + id + '").EpSlider(\'loop\');', $(this).data('autoplay_interval') );					
					}				
				}
			});
		}
	};

	$.fn.EpSlider = function( method ) {			
	    if ( methods[method] ) {
			return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
	    } else if ( typeof method === 'object' || ! method ) {
			return methods.init.apply( this, arguments );
	    } else {
			$.error( 'Method ' +  method + ' does not exist on jQuery.EpSlider' );
	    }    
	};
  
})( jQuery );
}


eap_init();

function eap_start(selector,options){
	jQuery(document).ready(function($){
		if('undefined'==typeof(jQuery.fn.EpSlider)){eap_init();}
		$(selector).EpSlider(options);
	});
}
