(function(){
            jQuery.fn.modalizar = function(conf){
						
                        var self			= this;
                        var contprov		= $(this).removeClass().addClass('cont');
                        this.cont							= contprov.clone();
                        contprov.remove();
                        
                        this.v								= $('<div></div>').attr('id',$(this).attr('id'));
                        this.cont.removeAttr('id','');      
                        this.v.data('modal',this);

                        this.ctrls                                   = $('</div><div>').addClass('controls');
                        this.close                                 = $('</div><div>').addClass('close');
                        this.scrlUp                               = $('</div><div>').addClass('scroll-up');
                        this.scrlDwn                 = $('</div><div>').addClass('scroll-down');
                        this.contWrap              = $('<div></div>').addClass('cont-wrap');
    
						//pregs
						this.preguno	= $('#preguno');
						this.pregdos	= $('#pregdos');
						this.pregtres	= $('#pregtres');
						this.pregcuatro = $('#pregcuatro');

	
                        //props//
                        this.scrollAmount = 5;

                        //c//
                        
                        $('body').append(this.v);
                        this.v.append(this.contWrap);
                        this.contWrap.append(this.cont);
                        this.v.prepend(this.ctrls);
                        this.ctrls.append(this.close);
                        this.ctrls.append(this.scrlUp);
                        this.ctrls.append(this.scrlDwn);
                        
                        this.v.relativize();
                        this.ctrls.css('float','right');
                        this.v.overlay({speed:0, load:false, closeOnClick:false, mask:'#000', onClose: function(){
                                               this.getOverlay().find('.controls').css('display','none');//hide(0);
                                               $('#exposeMask').hide();
                                               
                                   },
                                   onLoad: function(){
                                               this.getOverlay().find('.controls').fadeIn(500);
                                               self.cont.fadeIn(500);
											   self.setPuntajes();
                                   },
								   onClose: function(){
									self.destroy();
								   }
                        });
                        this.contWrap.css('border','10px solid white');
                        this.contWrap.height(this.v.outerHeight() - 20);

                        this.v.width(this.contWrap.outerWidth() + this.ctrls.outerWidth() +  1);
                        this.cont.height(parseInt(this.cont.find('.v').outerHeight()));
                        this.cont.centerX();
                                               
                        //setup//
                        
                                   //e//
                                   this.scrlUp.mouseover(function(){
                                               $(this).addClass("scroll-up-on");
                                   }).mouseout(function(){
                                               $(this).removeClass("scroll-up-on");
                                   });
                                   this.scrlDwn.mouseover(function(){
                                               $(this).addClass("scroll-down-on");
                                   }).mouseout(function(){
                                               $(this).removeClass("scroll-down-on");
                                   });
                                   this.close.mouseover(function(){
                                               $(this).addClass("close-on");
                                   }).mouseout(function(){
                                               $(this).removeClass("close-on");
                                   });
                                   this.scrlDwn.mousehold(20, function(i){
                                               self.scrollDown();                    
                                   });
                                   this.scrlUp.mousehold(20, function(i){
                                               self.scrollUp();
                                   });
                        //m//
                        


						this.setPuntajes = function(){
							$('#preguno').addClass('p'		+ conf.data.cuidado);
							$('#pregdos').addClass('p'		+ conf.data.entrenamiento);
							$('#pregtres').addClass('p'		+ conf.data.afectuosidad);
							$('#pregcuatro').addClass('p'	+ conf.data.energia);
						};
                        
                        this.load = function(){
                                   var api = this.v.data('overlay'); 
                                   api.load();
                        }
                        
                        this.scrollUp   = function(){
						   var cH			= this.cont.innerHeight();
						   var pH			= this.contWrap.outerHeight();
						   var positionUp   = this.cont.position();
						   var counterUp    = positionUp.top;
						   var downLimitPos = cH  - pH;
						   var downLimit    = downLimitPos - downLimitPos * 2;
						   var position     = this.cont.position().top;
						   var upLimitPos   = cH  - pH;
						   var upLimit      = 0;
                                                  
                           if (counterUp < upLimit){
                                    counterUp += this.scrollAmount;
                                    var numMov = counterUp + "px";    
                                    this.cont.css("top", numMov);
                           }
                        }
                        
						this.scrollDown = function(){
							var cH	         = this.cont.innerHeight();
                            var pH           = this.contWrap.outerHeight();
							var downLimitPos = cH  - pH;
                            var downLimit    = downLimitPos - downLimitPos * 2;
							var position     = this.cont.position().top;
            
                            if (position > downLimit){  
							   position = position - this.scrollAmount;
							   var numMov = position + "px";       
							   this.cont.css("top", numMov);
                            }
                        }
                        
						this.destroy = function(){
							this.v.remove();
						}

                        if(conf.load){
							this.load();
                        }
                        return this.v;
            }
})();

