var Modulos = new Class({
	Implements: [Events, Options],
	options: { 'MyModal':$empty },
	initialize: function() {  },// capturo todos los elementos "modulo" y segun su tipo lanzo las ordenes.

	getModulos : function(){		

		var d = $$('div.tipos','div.tipos_nopad','div.tipos_separador').each(function(item,index){
				this.switchModulo(item);	
		}.bind(this));

	

	},

	switchModulo: function (element){

		switch( (element.id)){
			case 'comentarios': this.comentarios(element); break;
			case 'hemeroteca' : this.hemeroteca(element); break;
			case 'chats_selec': this.hemeroteca(element); break;
			case 'mas_leido': this.mas_leido(element); break;
			case 'chat_preguntas': this.chat_preguntas(element); break;
			case 'chat_desarrollado': this.chat_desarrollado(element); break;
			case 'modulo_formatea_fecha': this.modulo_format_date(element); break;
			//case 'noticia_carrousel': this.noticia_carrousel(element); break;
			case 'noticia_desarrollada': this.noticia_desarrollada(element); break;
			case 'noticia_multimedia': this.noticia_multimedia(element); break;
			case 'encuesta': this.encuesta(element); break;
			//case 'menu': this.menu(element); break;
			//case 'modulo_videos_canales': this.modulo_videos_canales(element); break;
			case 'modulo_buscador_cabecera': 
			case 'modulo_buscador': this.modulo_buscador(element); break;
			//case 'modulo_newsletter': this.modulo_newsletter(element); break;
			//case 'modulo_baja_boletin': this.modulo_baja_boletin(element); break;
			//case 'modulo_blogs_formulario': this.modulo_blogs_formulario(element); break;
			//case 'modulo_galeria_desarrollo':this.modulo_seccion_tv(element); break;
			//case 'modulo_seccion_tv': this.modulo_seccion_tv(element); break;
			//case 'modulo_videos_desarrollo': this.modulo_seccion_desarrollo(element); break;
		};
	},
	nocache: function(){
		return Math.floor(Math.random()*99999);
	},
	ajaxmoduloform: function(modulo,form,data,onSuccess){
		data = $(form).toQueryString() + data;
		this.ajaxmodulo(modulo,data,onSuccess);
	},
	ajaxmodulo: function(modulo,data,onSuccess){
		var modulo    = (arguments.length > 0) ? modulo		: 0;
		var data      = (arguments.length > 1) ? data		: {};
		var onSuccess = (arguments.length > 2) ? onSuccess 	: $empty;

		// compatibilidad si data es string u Object.
		if (typeOf(data) == 'object') Object.append(data,{'ajax-modulo':modulo,'ajaxcontrol':'1','nocache': this.nocache()});
		else data = data + '&ajax-modulo='+ modulo +'&ajaxcontrol=1&nocache=' + this.nocache();

		var success = function(responseJSON, responseText){
			onSuccess(responseJSON, responseText);
		}
		new Request.JSON({	
				method:'post',
				url:'/index.php',
				data:data,
				evalScripts: 'true',
				evalResponse:true,
				onSuccess: success
			}
		).send();
		return false;
	},
	launchmodal:function(modulo,data,params,ckaction,onSuccess){
		var modulo    = (arguments.length > 0) ? modulo		: 0;   // definicion del controlador que va a responder
		var data      = (arguments.length > 1) ? data		: {};  // array de variables post
		var params    = (arguments.length > 2) ? params		: {};  // array de variables para el render-modal
		var ckaction  = (arguments.length > 3) ? ckaction 	: $empty;  // que hacemos cuando se haga click en el boton?
		var onSuccess = (arguments.length > 4) ? onSuccess 	: $empty;  // que hacemos cuando suceda?
		// compatibilidad si data es string u Object.
		if (typeOf(data) == 'object') Object.append(data,{'ajax-modulo':modulo,'ajaxcontrol':'1','json_encode':'false','nocache': this.nocache()});
		else data = data + '&ajax-modulo='+ modulo +'&ajaxcontrol=1&json_encode=false&nocache=' + this.nocache() ;
		this.options.MyModal = new SimpleModal(params);  // simple-modal
  		this.options.MyModal.addButton(params.button, "btn primary", ckaction);
 		this.options.MyModal.show({
		       "model":"modal-ajax",
		       "title":params.title,
		       "param":{ "url":"/index.php","data":data }
		});

	},
	
	comentarios:function(element){	
		var obj = this;


		var onsend = function(){   // cuando pulso enviar el form.. 
			 var form = new FormCheck('myform',{display : {errorsLocation : 3,indicateErrors : 2,flashTips : true,fadeDuration : 1000,scrollToFirst:false}});
			 if( form.isFormValid() ){ this.ajaxmoduloform('comentarios','myform','',onrequest.bind(this));}else{	form.onSubmit(); }
		};
		var onrequest = function(JSON){
			if(JSON.ID) this.options.MyModal.hide();
			var msg = new Element('div').set('html',JSON.MSG).inject(element,'top').tween('opacity','0','1'); 
			
			(function(){msg.tween('opacity',1,0);}).delay(4000);
			(function(){msg.destroy(); listado.start(element.getElement('.listado'));  }).delay(5000);
		};

		var enviar_respuesta_modal = function(send){  // abro un modal con el formulario de respuesta o de nuevo comentario.
			var parts = send.id.split('|');
			var data = {'method':'response_form','cod_pieza':parts[0],'tipo_pieza':parts[1],'commentID':parts[2]};
			var params = {"width":800,"title":send.title,"button":"Enviar Respuesta"};
			send.removeEvents('click');
			send.addEvent('click',function(){ this.launchmodal('comentarios',data,params, onsend.bind(this) ,$empty ); }.bind(this));
		};

		var listado = {
			cod_pieza:null, tipo_pieza:null, element:null,
			start: function(element){
				if(!element) return false;
				this.element = element;
				var parts = element.id.split('|');
				this.cod_pieza = parts[0]; this.tipo_pieza = parts[1];
				this.get_page(0);
			},
			get_page:function(n){
				var data = {'ajax-modulo':'comentarios','method':'get_responses','cod_pieza':this.cod_pieza,'tipo_pieza':this.tipo_pieza,'pieces':0,'page':n,'json_encode':false};
				new Request.HTML({method:'post',url:'/index.php',data:data,update:this.element,onSuccess: this.onPageLoad.bind(this)}).send();
			},
			onPageLoad:function(){
				this.element.getElements('.res').each(enviar_respuesta_modal.bind(obj));
			}

		};
		listado.start(element.getElement('.listado'));
		element.getElements('.res').each(enviar_respuesta_modal.bind(this));

	},
	
	

	hemeroteca: function(element){
		var calendario = element.getElement('#calendario');
		if(calendario){
			var year = element.getElement('input#year').value;
			var date = new Date(year);
			Locale.use('es-ES');
			var dp = new Picker.Date($$('input#show_calendar'), {
				minDate: year+'/01/01',
				maxDate: year+'/12/31',
				format: 'Y/M/d',
				onSelect : function(date){ ondateselect(date)},
				startView: 'year',
				timePicker: false,
				yearPicke: false,
				positionOffset: {x: 5, y: 0},
				pickerClass: 'datepicker_dashboard',
				useFadeInOut: !Browser.ie
			});
			dp.setTitle('Hemeroteca');
		}
		var ondateselect = function(date){
			dated = date.format('%Y-%m-%d');
			var accept = confirm("Desea ver la hemeroteca del "+dated+"?");
			if(accept) location.href="http://diariocritico.com/hemeroteca/"+dated;
		}
	},


	modulo_format_date: function(element){
		var date_options = {
			contenedor: element.getElement('#cont_fecha'),
			lang: "es-ES"
		}
		var ToDate = new FormDates(date_options);
	},
	
	chats_selec: function(element){
		var date_options = {
			contenedor: element.getElement('div[id=cont_fecha]'),
			lang: "es-ES"
		}
		var ToDate = new FormDates(date_options);
	},

	noticia_carrousel: function(element) {

		var actual     = 0; var estado     = 1; 		
		var limbo      = new Element('div');
		var contenedor = element.getElement('div[id=contenedor_piezas]');
		var piezas     = element.getElements('div[id=pieza]');
		element.getElement('div.paginacion').setStyle('width',element.getSize().x + 'px');
		var botones    = element.getElements('div[id=boton]').each(function(item,index){item.addEvents({'mouseover' : function(){ item.addClass('boton_over');    },'mouseout'  : function(){ item.removeClass('boton_over'); },'click'	    : function(){load(index);}});});
		var controles   = element.getElements('div[id=control]').each(function(item,index){	item.addEvent('click', function(){ switch(index){case 0: anterior(); break;case 1: toogle_play(); break;case 2: siguiente(); break;}}); });
		var load = function(index){
			actual = index;
			piezas.inject(limbo);
			piezas[index].tween('opacity',['0.6','1']).inject(contenedor);
			botones.removeClass('boton_over');
			botones[index].addClass('boton_over');

		}
		var toogle_play =  function(){if(estado){controles[1].addClass('play');estado = 0;clearInterval(timer);}else{controles[1].removeClass('play');estado = 1;siguiente();timer = siguiente.periodical(10000);}}
		var siguiente = function(){actual = (actual < (piezas.length -1)) ? actual + 1 : 0;load(actual);}
		var anterior  = function(){actual = (actual != 0) ? actual - 1 : (piezas.length -1);load(actual);}
		var timer      = siguiente.periodical(10000);


		load(0);		
	},
	
	chat_desarrollado: function(element) {
		date_options = {
			contenedor: element.getElement('.todate'),
			lang: "es-ES"
		}
		var ToDate = new FormDates(date_options);

		if(element.getElement('div#chat_preguntas')){
			var window = element.getElement('div#chat_preguntas');
			var area = window.getSize().y / (2.5);
			var myScroller = new Scroller(window,{area: area,velocity:0.2}).start();
		}

		if(element.getElement('a#send')){
			 element.getElement('div[id=mensaje]').setStyle('opacity',0);
			 var form = new FormCheck('form_chat');
			 var obj = this;
			 element.getElement('a#send').addEvent('click',function(){

		 		 if( form.isFormValid() ){		
						obj.ajaxmoduloform('chats_desarrollo','form_chat','',function(JSON){

								var mensaje = element.getElement('div[id=mensaje]');
								var chat = element.getElement('div[id=formu]');
								var myFx = new Fx.Slide(chat);
								mensaje.tween('opacity',0,1);
								myFx.slideOut();
						});
							


				 }else{
					form.onSubmit();
				 }
			});


		}
	},


	noticia_multimedia: function(element) {
		var actual     = 0; var estado     = 1; 
		var piezas     = element.getElements('div[id=pieza]');
		var conta      = piezas.length;
		var limbo      = new Element('div');
		var contenedor = element.getElement('div[id=contenedor_piezas]');
		if(conta!=1){
			element.getElement('a#ant').addEvent('click',  function(){anterior();     }     );
			element.getElement('a#sig').addEvent('click',  function(){siguiente();    }     );
			var toogle_e = element.getElement('a#toogle').addEvent('click',  function(){toogle(); });
			var siguiente = function(){actual = (actual < (piezas.length -1)) ? actual + 1 : 0;load(actual);}
			var anterior  = function(){actual = (actual != 0) ? actual - 1 : (piezas.length -1);load(actual);}
			var toogle    =  function(){
				if(estado){
					toogle_e.getChildren().set('src','http://statics.miamidiario.com/imagenes/btn_play_galeria.gif');
					estado = 0;
					clearInterval(timer);
				}else{
					toogle_e.getChildren().set('src','http://statics.miamidiario.com/imagenes/btn_pausa.gif');
					estado = 1;
					timer = siguiente.periodical(5000);
				}
			}
		var load = function(index){
			actual = index;
			if($$("#pieza a").slimbox({
				counterText: "Imagen {x} de {y}"
			}))
			piezas.inject(limbo);
			piezas[index].tween('opacity',['0.6','1']).inject(contenedor);
		}
		load(0);
		var timer = siguiente.periodical(5000);
		}else{
			if($$("#pieza a").slimbox({
				counterText: "Imagen {x} de {y}"
			}))
			var img_mul = element.getElement('img[id=img_multimedia]');
			img_mul.addEvent('mouseover',function(el){
				console.log("e");
			});
			
			element.getElement('div[class=contenedor_btns_galeria]').dispose();
		}
		
	},

	noticia_desarrollada: function(element) {
		date_options = {
			contenedor: element.getElement('.autorfecha'),
			lang: "es-ES"
		}
		var ToDate = new FormDates(date_options);
		var size = 1.2; 
		var deslizante = $('deslizante'); 

		var ctext = element.getElement('div.desarrollo_noticia');

		var din  = function(){ deslizante.slide('in'); }; var dout = function(){ deslizante.slide('out') };
		var up = function(){ size = size + 0.001; ctext.setStyle('font-size' , size + 'em'); };

		var dw = function(){ size = size - 0.001; ctext.setStyle('font-size' , size + 'em'); };

		var period = null; var stop = function(){ clearInterval(period); };

		deslizante.addEvents({ 'mouseover': din, 'mouseout': dout }).slide('hide');


		element.getElements('div.icn_noticia').each(function(icono,index){
			icono.addEvents({'mouseover': function(){ icono.tween('opacity','0.5'); },'mouseout':  function(){ icono.tween('opacity','1'); }});
			switch(icono.id){
				case 'at': icono.addEvents({ 'mousedown':function(){ period = up.periodical(10); } , 'mouseup':stop}); break;
				case 'dt': icono.addEvents({ 'mousedown':function(){ period = dw.periodical(10); } , 'mouseup':stop}); break;				
				case 'ct': icono.addEvents({ 'mouseover': din, 'mouseout': dout }); break;
			}
		});
	},

	modulo_buscador: function(element) {	
		var go = function(){
			if(f.value != ''){
				var valor = f.value.replace(/ /g,"-");
				document.location.href="/buscador/" + valor;
			 }
		}	
		var f = element.getElement('input[id=query]').addEvents({
			'keypress': function(event){ if(event.key == 'enter') go(); },
			'focus':  function(event){this.value = '';}
			,'mouseout':   function(event){ if(this.value == '') this.value = 'Buscar...';}


		});
		if (element.getElement('[id=buscar]'))
		element.getElement('[id=buscar]').addEvent('click',go);

		
	},


/*	encuesta: function(element){
		element.getElement('div[id=respuestas]').getChildren().each(function(item){
			item.addEvent('click',function(){
				new Request.JSON({url: '/index.php', onSuccess: function(JSON){
				var iscookie = Cookie.read('survey'+JSON.cod_encuesta);
				if(iscookie){ alert("Voto ya registrado"); return false;}
				Cookie.write('survey'+JSON.cod_encuesta, JSON.cod_encuesta, {duration: 1});
				var params = {menu:"false",scale:"noScale",allowFullScreen:"true",wmode:"transparent"};
				var flashvars = {'library_path':'http://nrw.diariocritico.com/assets/charts_library/',
						 'xml_source':'http%3A%2F%2Fnrw%2Ediariocritico%2Ecom%2Findex%2Ephp%3Fajax%2Dmodulo%3Dencuesta%26cod%5Fencuesta%3D'+JSON.cod_encuesta};
						  swfobject.embedSWF('http://nrw.diariocritico.com/assets/charts.swf', 'grafica' +JSON.cod_encuesta , 150, 150, "9.0.0","", flashvars, params, {});
				}}).post( {'ajax-modulo':'encuesta','cod_respuesta':item.id} );
			});
		});
		var borde = element.getElement('div[class=wrap]');
	},*/
	
	encuesta: function(element){
		var cod_enc = element.getElement('input[id=cod_enc]').value;
		element.getElement('div[id=respuestas]').getChildren().each(function(item){
			item.addEvent('click',function(){
				var iscookie = Cookie.read('survey'+cod_enc);
				if(iscookie){ alert("Voto ya registrado"); return false;}else{
				new Request.JSON({url: '/index.php', onSuccess: function(JSON){
				Cookie.write('survey'+JSON.cod_encuesta, JSON.cod_encuesta, {duration: 1});
				var params = {menu:"false",scale:"noScale",allowFullScreen:"true",wmode:"transparent"};
				var flashvars = {'library_path':'http://nrw.diariocritico.com/assets/charts_library/',
						 'xml_source':'http%3A%2F%2Fnrw%2Ediariocritico%2Ecom%2Findex%2Ephp%3Fajax%2Dmodulo%3Dencuesta%26cod%5Fencuesta%3D'+JSON.cod_encuesta};
						  swfobject.embedSWF('http://nrw.diariocritico.com/assets/charts.swf', 'grafica' +JSON.cod_encuesta , 150, 150, "9.0.0","", flashvars, params, {});
				}}).post( {'ajax-modulo':'encuesta','cod_respuesta':item.id} );
			}
			});
		});
		var borde = element.getElement('div[class=wrap]');
	},

	
	mas_leido: function(element){
		var window = element.getElement('div[id=ventana]');
		var area = window.getSize().y / (2.5);
		var myScroller = new Scroller(window,{area: area,velocity:0.2}).start();
	}

	
});

