var circulos = new Class({
	Implements: [Options, Events],
	options: {
		url: '',
		fotoActual:1,
		numClicks:0,		
		clicksToChangeBanner:9,
		elementImages:'',
		idBoton:'',
		imagen:'',
		bodyClase:'',
		plastaClase:'',
		contenedorClase:'',
		parentPlasta:$(document.html),
		fondoClase:'',
		cerrarClase:'cerrarComments',
		anuncioClass:'',
		enviarClase:'enviarComments'
	},
	initialize: function(options){
		this.setOptions(options);
		var self = this;
		var cssDefault = new Asset.css('/css/qv3_enviarAmigo.css');
		var urlLocal = new URI (window.location);
		this.urlLocal = urlLocal.parsed.directory.substr(1)+urlLocal.parsed.file;
		this.contenedorEnviar='';
		this.plasta = new Element ( 'div', {
			'class':this.options.pl
		});
		if($('tipoGaleria')){
		self.type= $('tipoGaleria').value;	
	      	}
		
						self.options.bodyclase = 'bodyCommentsContainer';
						self.options.plastaClase ='bodyCommentsContainer';
						self.options.contenedorClase = 'contenedorComments';
						self.options.fondoClase='fondoComments';
						self.options.cerrarClase='cerrarComments';
						self.options.anuncioClass='anuncioComments';
						self.options.enviarClase='enviarComments';
		
		
		if ( this.options.url == '' )
		{    if($('uid')){
			this.options.url = "/json/circulos/"+$('uid').value+".json";
		           }
		}
		//if ( typeof(fotoInicial) == 'number' )
		if( fotoInicial && fotoInicial.toInt() > 0 )
		{
			this.options.fotoActual = fotoInicial;
		}
		
		var retrieve = new retrieveWB ({ url:this.options.url });
		
		
		this.descripcion = true;
		retrieve.addEvent('completeJSON', function(){
			self.JSON = retrieve.JSON;
			self.buildGallery();
	
			self.enviarAmigo();	
			
		});
		
		
	},
	
	buildGallery: function ()
	{
		this.buildHeader();
		this.buildControls();
		$$('[class*=circulos_imagen]')[this.options.fotoActual-1].fireEvent('click');
	},
	buildHeader: function()
	{
		 titulo = '';
		 
		if ( this.JSON.titulo1 != null && this.JSON.titulo1 != '' && this.JSON.titulo1 != 'null' )
		{
			titulo+=this.JSON.titulo1;
		}
		if ( this.JSON.titulo2 != null && this.JSON.titulo2 != '' && this.JSON.titulo2 != 'null' )
		{
			titulo+="&nbsp;"+this.JSON.titulo2;
		}
		$('circulos_titulo').set('html', titulo);
		$('circulos_descripcion').set('html', this.JSON.descripcion!=null?this.JSON.descripcion:'');
		descripcion = this.JSON.descripcion;
	},
	buildControls: function ()
	{
		var self = this;
		$$('.circulos_contadorImagenes')[0].set('html', this.options.fotoActual+"/"+this.JSON.elementos.length);
		var contenedorImagenesControles = new Element ('div', {
			'class': 'circulos_contenedorImagenesControles',
			'styles': {
				'width': this.JSON.elementos.length*64
			}
		});
		for ( var i = 0; i < this.JSON.elementos.length; ++i )
		{	
			
			var imagen = this.buildImage(i);
			$$('.circulos_contenedorImagenes')[0].appendChild(imagen);
			/*var originalHeight = $(imagen).getElement('.circulos_imagen').offsetHeight;
			var originalWidth = $(imagen).getElement('.circulos_imagen').offsetWidth;
			$(imagen).getElement('.circulos_imagen').setStyles({
				height: 480,
				width: (480/originalHeight)*originalWidth
			});*/
			var imagenControl = new Element ('div', {
				'class': 'circulos_imagenControl',
				'styles': {
					'background-image': 'url('+ escape( this.JSON.elementos[i].imagen.url.replace('.jpg', '_thumb.jpg') ) + ')'
				}
			}).inject(contenedorImagenesControles);
			imagenControl.addEvent('click', this.cambiaImagen.bind(imagenControl, [imagen, this]) );
			if ( (i+1) == this.options.fotoActual )
			{
				$(imagenControl).className='circulos_imagenControlActivo';
			}
		}
		$$('.circulos_controlIzquierda')[0].addEvent('click', function (){
			if ( $$('.circulos_contenedorImagenesControles div[class*=circulos_imagenControl]').indexOf($$('.circulos_imagenControlActivo')[0]) > 0 )
			{
				$$('.circulos_contenedorImagenesControles div[class*=circulos_imagenControl]')[$$('.circulos_contenedorImagenesControles div[class*=circulos_imagenControl]').indexOf($$('.circulos_imagenControlActivo')[0])-1].fireEvent('click');
				
			}
			else if ( $$('.circulos_contenedorImagenesControles div[class*=circulos_imagenControl]').indexOf($$('.circulos_imagenControlActivo')[0]) == 0 )
			{
				$$('.circulos_contenedorImagenesControles div[class*=circulos_imagenControl]')[self.JSON.elementos.length-1].fireEvent('click');
			}
		});
		$(contenedorImagenesControles).inject($$('.circulos_contenedorControles')[0]);
		$$('.circulos_controlDerecha')[0].addEvent('click', function (){
			if ( $$('.circulos_contenedorImagenesControles div[class*=circulos_imagenControl]').indexOf($$('.circulos_imagenControlActivo')[0]) < $$('.circulos_contenedorImagenesControles div[class*=circulos_imagenControl]').length-1 )
			{
				$$('.circulos_contenedorImagenesControles div[class*=circulos_imagenControl]')[$$('.circulos_contenedorImagenesControles div[class*=circulos_imagenControl]').indexOf($$('.circulos_imagenControlActivo')[0])+1].fireEvent('click');
			}
			else if ( $$('.circulos_contenedorImagenesControles div[class*=circulos_imagenControl]').indexOf($$('.circulos_imagenControlActivo')[0]) == $$('.circulos_contenedorImagenesControles div[class*=circulos_imagenControl]').length-1 )
			{
				$$('.circulos_contenedorImagenesControles div[class*=circulos_imagenControl]')[0].fireEvent('click');
			}
		});
		document.addEvent('keydown', function (event){
			if ( event.key == 'right' )
			{
				$$('.circulos_controlDerecha')[0].fireEvent('click');
				
			}
			else if ( event.key == 'left' )
			{
				$$('.circulos_controlIzquierda')[0].fireEvent('click');
			}
		});
	},
	cambiaImagen: function ( imagen, control )
	{
		$$('.circulos_imagenControlActivo')[0].className='circulos_imagenControl';
		$(this).className = 'circulos_imagenControlActivo';
		var universo = $A($$('.circulos_divImagen'));
		//Se asegura que no se intente cambiar a la imagen que YA está activa
		if ( universo.indexOf(imagen) != (control.options.fotoActual-1) )
		{
			$(universo[control.options.fotoActual-1]).addClass('oculto');
			control.options.fotoActual = universo.indexOf(imagen)+1;
			$(imagen).removeClass('oculto');
			//Busca si la descripción va cerrada o abierta
			if ( control.descripcion == true )
			{
				$(imagen).getElement('.textoDescripcion').removeClass('oculto');
				//$(imagen).getElement('.botonDescripcion').addClass('oculto');
			}
			else
			{
				$(imagen).getElement('.textoDescripcion').addClass('oculto');
				//$(imagen).getElement('.botonDescripcion').removeClass('oculto');
			}
			if ( control.JSON.elementos.length > 9 )
			{
				$$('.circulos_contenedorControles')[0].scrollLeft = ($$('div[class*=circulos_imagenControl]').indexOf($$('.circulos_imagenControlActivo')[0])-4)*64;
			}
			$$('.circulos_contadorImagenes')[0].set('html', control.options.fotoActual+"/"+control.JSON.elementos.length);
			++control.options.numClicks;
		}
		var iframeControl = null;
		var parentNode = $('sidebar-banner-top');
		if($(parentNode)){
		$(parentNode).addEvent('processFrame', function(){
			if ( $(iframeControl) != null )
			{
				try{
				this.set('html', '');
				var hijo = $($(iframeControl).contentWindow.document.getElementById('sidebar-banner-top')).innerHTML;
				this.innerHTML = hijo;
				document.body.removeChild($(iframeControl));
				}catch(e){}
				iframeControl = null;
			}
		});
	    }
		if ( control.options.numClicks == control.options.clicksToChangeBanner )
		{
			try{
			iframeControl = new IFrame ({
				src:'/qv3_portlet_banner_box1.php',
				styles:{
					'visibility':'hidden',
					'display':'none'
				},
				events:{
					'load':function(){
						$(parentNode).fireEvent('processFrame' );
					}
				}
			}).inject($(document.body));
			}catch(e){}
			control.options.numClicks = 0;
		}
	},
	buildImage: function(i)
		{   
				
		 var self = this;
		 this.options.elementImages= this.JSON.elementos[i].imagen.url;
		 divImagen = new Element ( 'div', {
			'class': 'circulos_divImagen'
		});
		var textoDescripcion = new Element ('div', {
			'class':'textoDescripcion',
			'html': this.JSON.elementos[i].entradilla.replace(/,/g, ', ')+' (foto: '+this.JSON.elementos[i].credito+')'
		}).inject(divImagen);
		var contenedorImagen = new Element ('div', {
			'class': 'circulos_contenedorImagen'
		}).inject(divImagen);
		if ( (480/parseFloat(this.JSON.elementos[i].imagen.proporcion)) < 480 )
		{
			var classImagen = 'circulos_imagenH';
		}
		else
		{
			var classImagen = 'circulos_imagen';
		}
		var imagen = new Element ('img', {
			'src': this.JSON.elementos[i].imagen.url,
			'class': classImagen
		}).inject(contenedorImagen);	
		
				this.agregaBoton();
					
		
				
		if ( (i+1) != this.options.fotoActual )
		{
			$(divImagen).addClass('oculto');
		}
		return ($(divImagen));
		
	},
	
	
		agregaBoton: function ( ){
		var self = this;
	   var elementImages = self.options.elementImages;
		var extra = new Element('div', {
			'class': 'circulos_imagenCredito'
			//'html': this.JSON.elementos[i].credito
		}).inject(divImagen);
		var strMainPath='http://www.quien.com/';
		
		var contBtns = new Element ('div', {
		'class': 'circulos_imagenPlasta'
		}).inject(extra);
	
		if(self.type == 'circulos'){
		var divTwit = new Element ('div',{'class':'contenedorBotones'}).inject(contBtns);
				var twitter = new Element ('a',{'href' : 'javascript:void(0)', 'id': 'twitter','title':'Enviar a Twitter', 'text' : 'Enviar a Twitter' }).inject(divTwit);
				twitter.addEvent( 'click', function(){ 						
					
					window.open('http://twitgoo.com/-share/?upload_url='+strMainPath +elementImages,"DESCARGAR","width=720, height=550, scrollbars=yes");

								} ); 
				new Element ('img', {
			'src': '/images/spacer.gif'}).inject(twitter);
			twitter.addEvents({
                mouseenter:function() {
                   twitter.set('morph',{ duration: 500 ,transition: Fx.Transitions.Bounce.easeOut }).morph({
                      
							height: 28, 
							width:  77
                    });
                },
                mouseleave:function() {
                    twitter.set('morph',{ duration: 500 , transition: Fx.Transitions.Bounce.easeOut}).morph({
                        width: 28,
                        height:29
                    });
                    
                }   
            });		
					
		
		var divface = new Element ('div',{'class':'contenedorBotones'}).inject(contBtns);		
		var direface = encodeURIComponent(strMainPath + elementImages) + '&t=' + encodeURIComponent('Quien.com');
		
		var face = new Element( 'a', { 'href' : 'javascript:void(0)', 'id':'face','title':'Enviar a Facebook','text' : 'Enviar a Facebook'}).inject(divface);
			face.addEvent( 'click', function(){ 	
				
				window.open('http://www.facebook.com/sharer.php?u=' + direface ,"FACEBOOK","width=720, height=550, scrollbars=yes");
				} );
		     new Element ('img', {
			'src': '/images/spacer.gif'}).inject(face);	
			 face.addEvents({
                mouseenter:function() {
                   face.set('morph',{ duration: 500 ,transition: Fx.Transitions.Bounce.easeOut }).morph({
                      		height: 28, 
							width:  77
                    });
                },
                mouseleave:function() {
                    face.set('morph',{ duration: 500 , transition: Fx.Transitions.Bounce.easeOut}).morph({
                        width: 28,
                        height:29
                    });
                    
                }   
            });
        
        var divEnviar = new Element ('div',{'class':'contenedorBotones'}).inject(contBtns);
		var enviar = new Element ('a',{'href' : 'javascript:void(0)', 'id': 'botonEnviarAmigo','title':'Enviar a Amigo', 'text' : 'Enviar' }).inject(divEnviar);
					 new Element ('img', {
					'src': '/images/spacer.gif'}).inject(enviar);
						enviar.addEvent( 'click', function(){	
										
							self.showEnviar(elementImages); 											
						  });	
												   			   	
						   enviar.addEvents({
						   mouseenter:function() {
						   enviar.set('morph',{ duration: 500 ,transition: Fx.Transitions.Bounce.easeOut }).morph({
							  
									height: 28, 
									width:  77
									
							});
						   },
						   mouseleave:function() {
							enviar.set('morph',{ duration: 500 , transition: Fx.Transitions.Bounce.easeOut}).morph({
								width: 28,
								height:29
							});
							
						}   
					});   
					
	
		var divbajar = new Element ('div',{'class':'contenedorBotones'}).inject(contBtns);	
		
		var bajar = new Element ('a',{'href' : 'javascript:void(0)', 'id': 'bajar','title':'Bajar', 'text' : ' Bajar ' }).inject(divbajar);
				bajar.addEvent( 'click', function(){ 		
				window.open(strMainPath + 'download.php?foto='+strMainPath+elementImages ,"DESCARGAR","width=720, height=550, scrollbars=yes");
				} );  	
			   new Element ('img', {
				'src': '/images/spacer.gif'}).inject(bajar);                                
                bajar.addEvents({
                mouseenter:function() {
                   bajar.set('morph',{ duration: 500 ,transition: Fx.Transitions.Bounce.easeOut }).morph({
                      
							height: 28, 
							width:  77
                    });
                },
                mouseleave:function() {
                    bajar.set('morph',{ duration: 500 , transition: Fx.Transitions.Bounce.easeOut}).morph({
                        width: 28,
                        height:29
                    });
                    
                }   
            });   		
								
				}//fin if galerias		
	    	
		},//fin funcion botones
		
		enviarAmigo:function(){
		var self = this;
		self.contenedorEnviar = new Element ('div').addClass(this.options.contenedorClase).addClass('oculto').inject($(this.options.parentPlasta));
		var contenedorGeneral = new Element('div').addClass('contenedorParentCenter').inject(this.contenedorEnviar);
		 injectHTML = new Element ('div').addClass('contenedorCenter').addEvent('click', function (e){
			if ( this == e.target )
			{
				self.hideEnviar();
			}
			
		}).inject(contenedorGeneral);
		injectHTML.get('load', {
			data:'url='+this.urlLocal,
			onSuccess:function()
			{
				//Activa el bot�n de cerrar
				//$$(this.options.cerrarClase).addEvent('click', self.hideEnviar.bind(self));
				//Comprueba que las direcciones de correo sean v�lidas
				injectHTML.getElements('input[clase=mail]').each(function(item, index){
					var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
					var clearPattern = /^[\s]*(.*?)[\s]*$/;
					item.addEvent('change', function(e){
						e.stop();
						var direcciones = item.value.split(",");
						item.value='';
						direcciones.each(function(address, indice)
						{
							address = address.replace(clearPattern, "$1");
							if ( emailPattern.test(address) == false )
							{
								item.value = '';
								item.addClass('requerido');
								item.focus();
								alert("Debes introducir una direccion v\u00E1lida");
							}
							else
							{
								if ( indice > 0 )
								{
									item.value+=",";
								}
								item.value+=address;
								item.removeClass('requerido');
							}
						});
					});
				});
				//Hace que los campos se limpien en el primer click dado
				injectHTML.getElements('input[type=text]').each(function(item, index){
					item.addEvent('focus', function(){
						if ( item.getProperty('class') == '' )
						{
							item.value = '';
							item.addClass('normal');
						}
					});
				});
						
				
			}
		}).post('/_php/getFrameComentarios.php');
	},
	
	enviarCorreo: function(imagen){
		var self = this;
		this.imagen = imagen;
		var foto = this.imagen;
		var lnk = this.urlLocal;	
		$$('.'+this.options.enviarClase).addEvent('click', function(){
					
					var selfButton = this;
					for ( var i = 0; i < injectHTML.getElements('input[priority=requerido]').length; ++i )
					{
						if ( injectHTML.getElements('input[priority=requerido]')[i].getProperty('class') != '' )
						{
							injectHTML.getElements('input[priority=requerido]')[i].removeClass('requerido');
						}
						if ( injectHTML.getElements('input[priority=requerido]')[i].getProperty('class') == '' || injectHTML.getElements('input[priority=requerido]')[i].value == '' )
						{
							injectHTML.getElements('input[priority=requerido]')[i].fireEvent('click');
							injectHTML.getElements('input[priority=requerido]')[i].focus();
							injectHTML.getElements('input[priority=requerido]')[i].addClass('requerido');
							
							return false;
						}
					}
					
					//Comprueba si se enviar� una copia al remitente
				
						var dataRequest = 'to='+$('toMail').value+
						//($('bccMail').value!=''?'&bcc='+$('bccMail').value:'')+
					//	($('sbjMail').value!=''?'&sbj='+$('sbjMail').value:'')+
						'&frm='+$('fromMail').value+
						($('msgMail').value!=''?'&msg='+$('msgMail').value:'')+
						'&tit='+titulo+
						'&lnk='+lnk+
						'&des='+descripcion+
						'&img='+foto+
						'&scp='+self.selfCopy;
						new Request.JSON({
						url:'/_php/enviarAmigo.php',
						data:dataRequest,
						noCache:true,
						onFailure:function()
						{
							alert("Ha existido un error, vuelve a intentar");
						},
						onSuccess:function(responseJSON, responseText)
						{
							if (typeof(responseJSON.error) == 'undefined')
							{
								//self.envioExitoso();
									self.hideEnviar();
								
							}
							else
							{
								alert("Ha existido un error, vuelve a intentar");
							}
						}
					}).send();
					
				});
		
		},
	
	showEnviar: function ( imagen )
	{   
		this.imagen = imagen;
		var foto = this.imagen;
		
		$(this.options.parentPlasta).addClass(this.options.bodyClase);
		this.plasta.inject($(this.options.parentPlasta));
		this.contenedorEnviar.removeClass('oculto');
		$$('.'+this.options.cerrarClase).addEvent('click', this.hideEnviar.bind(this));
		this.enviarCorreo(foto);
	},
	hideEnviar: function ( )
	{
	   $(this.options.parentPlasta).removeClass(this.options.bodyClase);
		this.plasta.dispose();
		this.contenedorEnviar.addClass('oculto');
			injectHTML.getElements('input[type=text]').each(function(item, index){
					item.addEvent('focus', function(){
						if ( item.getProperty('class') == '' )
						{
							item.value = '';
							item.addClass('normal');
						}
					});
				});
	}
	/*envioExitoso: function ()
	{
		var self = this;
		new Asset.javascript('http://stats.quien.com/weblog.php?url='+this.urlLocal+'&lec=1');
		new Asset.javascript('/js/injectHTML.class.js?v=003', {
			onload:function()
			{
				var inject = new injectHTML({
					method:'post',
					url:'/_php/getFrameComentarios.php',
					data:'masEnviados=1',
					inputControl:$$('.contenedorCenter')[0],
					noCache:false,
					insertControl:true,
					onRequest:function()
					{
						$$('.contenedorCenter')[0].set('html', '');
					}
				});
				inject.addEvent('injectready', function (){
					//Activa el bot�n de cerrar
					$$('.'+self.options.cerrarClase)[0].addEvent('click', self.hideEnviar.bind(self));
				})
			}
		});
	}*/
});	
			

		
	 
		
	

