(function($){
	$.fn.galleryView = function(options) {
		var opts = $.extend($.fn.galleryView.defaults,options);
		var id;
		var iterator = 0;
		var gallery_width;
		var gallery_height;
		var frame_margin = 0;
		var strip_width;
		var wrapper_width;
		var item_count = 0;
		var slide_method='pointer';
		var img_path;
		var paused = false;
		var frame_caption_size = 0;
		var frame_margin_top = 5;
		var pointer_width = 0;
		
		var j_gallery;
		var j_filmstrip;
		var j_frames;
		var j_panels;
		var j_pointer;
		
		function showItem(i) {
			var clave;
			var tipo;
			
			//tipo=jQuery('#cont'+i).attr('name').split('_')[0];
			//clave=jQuery('#cont'+i).attr('name').split('_')[1];

			/*$.post("/ajax/imagenFondo.php", { Id: clave, elemento: tipo }, function(data){				
				if (data.length>0 && data!=0){	
					jQuery('#fotoplayer').attr('src','url('+data+')').fadeIn('fast');
				}
			*/
			
			valor=jQuery('#playereventosimagengrande'+i).attr('name');
	
			if(valor)
			{jQuery('#playereventosfotoplayer').attr('src',valor).fadeIn('fast');}
			
			cont=0;
			while (cont<item_count) {
			
				jQuery('#playereventosimagen'+cont).removeClass('activo');
				cont++;
			}
			jQuery('#panel'+i).css('visibility','visible');
			
			jQuery('#playereventosimagen'+i).addClass('activo');

			j_frames.unbind('click');
			if(has_panels) {
				if(opts.fade_panels) {
					//Fade out all panels and fade in target panel
					j_panels.fadeOut(opts.transition_speed).eq(i%item_count).fadeIn(opts.transition_speed,function(){
						if(!has_filmstrip) {
					
						}
					});
				} 
			}
			
			var resul=(i%3);
		
		 	if (resul==0){slide_method='strip';}
			else{slide_method='pointer';}
	
			if(has_filmstrip) {			
				if(slide_method=='strip') {				
					j_filmstrip.stop();	
					var distance = getPos(j_frames[i]).left - (getPos(j_pointer[0]).left);
					var leftstr = (distance>=0?'-=':'+=')+Math.abs(distance)+'px';
					var paginas =Math.ceil(item_count/3);
				
					slide_method='pointer';
			
					j_filmstrip.animate({
						'left':leftstr
					},opts.transition_speed,opts.easing,function(){
						 if (i<=(item_count)) {
								if(i==3){
								i = (i%3)+3;
								iterator = i;
								slide_method='pointer';
								
								cont=1;
								while (cont<=paginas) {
									jQuery('#playereventospag'+cont).removeClass('activo');
									cont++;
								}
								jQuery('#playereventospag2').addClass('activo');
								
								j_filmstrip.css('left','-'+((212)*i)+'px');}
								if(i==6){
								i = 6;
								iterator = i;
								slide_method='pointer';
								cont=1;
								while (cont<=paginas) {
									jQuery('#playereventospag'+cont).removeClass('activo');
									cont++;
								}
								jQuery('#playereventospag3').addClass('activo');
								
								j_filmstrip.css('left','-'+((212)*i)+'px');}
								if(i==9){
								i = 9;
								iterator = i;
								slide_method='pointer';
								cont=1;
								while (cont<=paginas) {
									jQuery('#playereventospag'+cont).removeClass('activo');
									cont++;
								}
								jQuery('#playereventospag4').addClass('activo');
								
								
								j_filmstrip.css('left','-'+((212)*i)+'px');}
								if(i==12){
								i = 12;
								iterator = i;
								slide_method='pointer';
								cont=1;
								while (cont<=paginas) {
									jQuery('#playereventospag'+cont).removeClass('activo');
									cont++;
								}
								jQuery('#playereventospag5').addClass('activo');
								
								j_filmstrip.css('left','-'+((212)*i)+'px');}
								if(i==15){
								i = 15;
								iterator = i;
								slide_method='pointer';
								j_filmstrip.css('left','-'+((212)*i)+'px');}
						}
						
						if(!opts.fade_panels) {
							if(i==0){j_panels.hide().eq(0).show();}
							if(i==3){j_panels.hide().eq(3).show();}
							if(i==6){j_panels.hide().eq(6).show();}
							if(i==9){j_panels.hide().eq(9).show();}
							if(i==12){j_panels.hide().eq(12).show();}
							if(i==15){j_panels.hide().eq(15).show();}
						}
		
						enableFrameClicking();
					
					});
				} else if(slide_method=='pointer') {
					resul=(i%3);
					j_pointer.stop();				
					pos = getPos(j_frames[i]);
					j_pointer.animate({},opts.transition_speed,opts.easing,function(){	
						if(!opts.fade_panels) {j_panels.hide().eq(i).show();}	
						enableFrameClicking();
					});
				}
			
				if($('a',j_frames[i])[0]) {
					j_pointer.unbind('click').click(function(){
						var a = $('a',j_frames[i]).eq(0);
						if(a.attr('target')=='_blank') {window.open(a.attr('href'));}
						else {location.href = a.attr('href');}
					});
				}
			}
			//	});
		};
				
		function showPagItem(i) {			
			$(document).stopTime("transition");
			if(i==0) {
				iterator=0;
				
				showItem(0);
				var paginas =Math.ceil(item_count/3);
				cont=1;
				while (cont<=paginas) {
					jQuery('#playereventospag'+cont).removeClass('activo');
					cont++;
				}
				jQuery('#playereventospag1').addClass('activo');
				$(document).everyTime(opts.transition_interval,"transition",function(){
					showNextItem();
				});
			}else{
				iterator=i;
				
				showItem(iterator);
				$(document).everyTime(opts.transition_interval,"transition",function(){
					showNextItem();
				});
			}
		};
	
		function showNextItem() {
			$(document).stopTime("transition");
			if(++iterator==j_frames.length) {
				iterator=0;
			
				showItem(0);
				var paginas =Math.ceil(item_count/3);
				cont=1;
				while (cont<=paginas) {
					jQuery('#playereventospag'+cont).removeClass('activo');
					cont++;
				}
				jQuery('#playereventospag1').addClass('activo');
				$(document).everyTime(opts.transition_interval,"transition",function(){
					showNextItem();
				});
			}else{
				showItem(iterator);
				$(document).everyTime(opts.transition_interval,"transition",function(){
					showNextItem();
				});
			}
		};
		
		function showPrevItem() {
			$(document).stopTime("transition");
			if(--iterator<0) {iterator = item_count-1;}
		
			showItem(iterator);
			$(document).everyTime(opts.transition_interval,"transition",function(){
				showNextItem();
			});
		};
		
		function getPos(el) {
			var left = 0, top = 0;
			if(!el) {
				var gPos = getPos(j_gallery[0]);
				var gLeft = gPos.left;
				var gTop = gPos.top;
				return {'left':left-gLeft,'top':top-gTop};				
			}else{
				var el_id = el.id;
				if(el.offsetParent) {
					do {
						left += el.offsetLeft;
						top += el.offsetTop;
					} while(el = el.offsetParent);
				}
				
				if(el_id == id) {return {'left':left,'top':top};}		
				else {
					var gPos = getPos(j_gallery[0]);
					var gLeft = gPos.left;
					var gTop = gPos.top;
					
					return {'left':left-gLeft,'top':top-gTop};
				}
			}
		};
		
		function enableFrameClicking() {
			j_frames.each(function(i){
				//If there isn't a link in this frame, set up frame to slide on click
				//Frames with links will handle themselves
				if($('a',this).length==0) {
					$(this).click(function(){
						$(document).stopTime("transition");					
						showItem(i);
						iterator = i;
						$(document).everyTime(opts.transition_interval,"transition",function(){
							showNextItem();
						});
					});
				}
			});
		};
		
		function buildPanels() {
			//If there are panel captions, add overlay divs
			if($('.panel-overlay').length>0) {j_panels.append('<div class="overlay"></div>');}
			if(!has_filmstrip) {}
			j_panels.css({});
			$('.panel-overlay',j_panels).css({
				'position':'absolute',
				'zIndex':'999',
				'top':(opts.overlay_position=='top'?'0':opts.panel_height-opts.overlay_height+'px')
			});
			$('.panel-overlay a',j_panels).css({});
			$('.overlay',j_panels).css({
				'position':'absolute',
				'zIndex':'998'
			});
			$('.panel iframe',j_panels).css({'border':'0'});
		};
		
		function buildFilmstrip() {
			j_filmstrip.wrap('<div class="strip_wrapper"></div>');
			if(slide_method=='strip') {
				j_frames.clone().appendTo(j_filmstrip);
				j_frames.clone().appendTo(j_filmstrip);
				j_frames = $('li',j_filmstrip);
			}
			//If captions are enabled, add caption divs and fill with the image titles
			if(opts.show_captions) {
				j_frames.append('<div class="caption"></div>').each(function(i){
					$(this).find('.caption').html($(this).find('img').attr('title'));			   
				});
			}
			
			j_filmstrip.css({
				'listStyle':'none',
				'margin':'0',
				'padding':'0',
				'position':'absolute',
				'zIndex':'900',
				'top':'0',
				'left':'0',
				 'float':'left'
				// 'color':'#FFF',
				// 'overflow':'hidden'
			});
			
			j_frames.css({
				'position':'relative',
				'zIndex':'901',
				'cursor':'pointer',
				'margin':'0px 11px 0 0',
				'padding':'8px 0 0 0',
				'width':'201px',
				'height':'100px',
				'text-align':'left',
				//'color':'#FFF',
				'float':'left'
			});
			
			$('img',j_frames).css({'border':'none'});
			
			$('.strip_wrapper',j_gallery).css({
				'position':'absolute',
				'top':'85px',
				'left':'10px',
				'width':'638px',
				'height':'100px'
				//'background-color':'#000'
				//'overflow':'hidden'
			});
			
			$('.caption',j_gallery).css({});
			var pointer = $('<div></div>');
			pointer.attr('id','pointer').appendTo(j_gallery).css({
				 'position':'absolute',
				 'zIndex':'1000',
				 'cursor':'pointer',
				 'top':'0px',//getPos(j_frames[0]).top+'0px',
				 'left':'10px'//getPos(j_frames[0]).left+'0px'
			
			});
			j_pointer = $('#pointer',j_gallery);
			
			if(slide_method=='strip') {
				j_filmstrip.css('left','-'+((201)*item_count)+'px');
				iterator = item_count;
			}
	
			if($('a',j_frames[iterator])[0]) {
				j_pointer.click(function(){
					var a = $('a',j_frames[iterator]).eq(0);
					if(a.attr('target')=='_blank') {window.open(a.attr('href'));}
					else {location.href = a.attr('href');}
				});
			}
		};

		function mouseIsOverPanels(x,y) {		
			var pos = getPos(j_gallery[0]);
			var top = pos.top;
			var left = pos.left;
			return x > left && x < left+opts.panel_width && y > top && y < top+opts.panel_height;				
		};
		
		return this.each(function() {
			j_gallery = $(this);
			
			$('script').each(function(i){
				var s = $(this);
				if(s.attr('src') && s.attr('src').match(/jquery\.galleryview/)){
					img_path = s.attr('src').split('jquery.galleryview')[0]+'themes/';	
				}
			});
			
			var clave;
			var tipo;
			if(jQuery('#cont0').attr('name')){
				//tipo=jQuery('#cont0').attr('name').split('_')[0];
				//clave=jQuery('#cont0').attr('name').split('_')[1];
				
				valor=jQuery('#playereventosimagengrande0').attr('name');
				jQuery('#playereventosfotoplayer').attr('src',valor).fadeIn('fast');
				
				
				/*$.post("/ajax/imagenFondo.php", { Id: clave, elemento: tipo }, function(data){				
					if (data.length>0 && data!=0){
						jQuery('#fotoplayer').attr('src','url('+data+')').fadeIn('fast');
						//	jQuery('#fondoplayer').css('height','492px');
					}*/
			
					j_gallery.css('visibility','hidden');
		
					j_filmstrip = $('.filmstrip',j_gallery);
					j_frames = $('li',j_filmstrip);
					j_panels = $('.panel',j_gallery);
					
					id = j_gallery.attr('id');
					
					has_panels = j_panels.length > 0;
					has_filmstrip = j_frames.length > 0;
					
					if(!has_panels) opts.panel_height = 0;
		
					item_count = has_panels?j_panels.length:j_frames.length;

					strip_size=3

					slide_method = 'pointer';

					gallery_width = 638;
					gallery_height = 100;
					if(slide_method == 'pointer') {strip_width = (201*item_count);}
					else {strip_width = (201*item_count*3)+(frame_margin*(item_count*3));}
		
					wrapper_width = 638;

					j_gallery.css({
						'position':'relative',
						'margin':'0'
					});
			
					//if(has_filmstrip) {
						buildFilmstrip();
					//}
					
					if(has_panels) {buildPanels();}
			
					$().mousemove(function(e){							
						if(mouseIsOverPanels(e.pageX,e.pageY)) {
							if(opts.pause_on_hover) {
								$(document).oneTime(500,"animation_pause",function(){
									$(document).stopTime("transition");
									paused=true;
								});
							}
							if(has_panels && !has_filmstrip) {
								$('.nav-overlay').fadeIn('fast');
								$('.nav-next').fadeIn('fast');
								$('.nav-prev').fadeIn('fast');
							}
						} else {
							if(opts.pause_on_hover) {
								$(document).stopTime("animation_pause");
								if(paused) {
									$(document).everyTime(opts.transition_interval,"transition",function(){
										showNextItem();
									});
									paused = false;
								}
							}
							if(has_panels && !has_filmstrip) {
								$('.nav-overlay').fadeOut('fast');
								$('.nav-next').fadeOut('fast');
								$('.nav-prev').fadeOut('fast');
							}
						}
					});
			
					jQuery('#playereventosimagen0').addClass('activo');
					
					var paginas =Math.ceil(item_count/3);
					cont=1;
					elem=0;
					while (cont<=paginas) {
						jQuery('#playereventospag'+cont).removeClass('activo');
						if(elem==0) jQuery('#playereventospag'+cont+ ' a').click(function(){showPagItem(0);return false;});
						if(elem==3) jQuery('#playereventospag'+cont+ ' a').click(function(){showPagItem(3);return false;});
						if(elem==6) jQuery('#playereventospag'+cont+ ' a').click(function(){showPagItem(6);return false;});
						if(elem==9) jQuery('#playereventospag'+cont+ ' a').click(function(){showPagItem(6);return false;});
						if(elem==12) jQuery('#playereventospag'+cont+ ' a').click(function(){showPagItem(9);return false;});
						if(elem==15) jQuery('#playereventospag'+cont+ ' a').click(function(){showPagItem(12);return false;});
						cont++;
						elem=elem+3;
					}
					jQuery('#playereventospag1').addClass('activo');
					
					cont=0;
					while (cont<item_count) {
						jQuery('#playereventosimagen'+cont).css('visibility','visible');
						cont++;
					}
					jQuery('#panel0').css('visibility','visible');
					
					j_panels.eq(0).show();

					if(item_count > 1) {
						$(document).everyTime(opts.transition_interval,"transition",function(){
							showNextItem();
						});
					}
			
					j_gallery.css('visibility','visible');
				//});
			}
		});
	};
	
	$.fn.galleryView.defaults = {
		frame_width: 201,
		frame_height: 100,
		filmstrip_size: 3,
		overlay_height: 300,
		overlay_font_size: '1em',
		transition_speed: 10,
		transition_interval: 4000,
		pause_on_hover: false
	};
})(jQuery);
