$.widget("ui.daterange", {
		
	_init: function(){
		$('#cal').datepicker();
		this.fechaInicio='';
		this.fechaFin='';
		this.msXdia=(24*60*60*1000);
		this.nchs=1;
		return this;
	 },
	
	setCal0: function(elemento){
			this.calendario0=$(elemento);
			jQuery.data($(elemento).get(0),"daterange",this);
						
	},
	
	setCal1: function(elemento){
			this.calendario1=$(elemento);
			jQuery.data($(elemento).get(0),"daterange",this);
	},

	setNoches: function(elemento){
			this.noches=$(elemento);
			this.noches.change(this.cambiaNoches);
			jQuery.data($(elemento).get(0),"daterange",this);
	},

	iniciar: function(){
		hoy=new Date();		
		this.calendario0.datepicker({
			beforeShowDay: this.rangoDays,
			beforeShow: this.customRange,
			onSelect: this.cambiaFechaInicio,
			showOn: 'both', 
        	buttonText: ':::',
			hideIfNoPrevNext: true
		});
		
		this.calendario1.datepicker({
			beforeShowDay: this.rangoDays,
			beforeShow:this.customRange,
			onSelect: this.cambiaFechaFin,
			showOn: 'both', 
        	buttonText: ':::',
			hideIfNoPrevNext: true
		});
		
		hoy.setTime(hoy.getTime()+(this.msXdia*this.nchs));
		
		if (this.calendario0.val()==''){
				this.calendario0.datepicker('setDate',hoy);			
			}
			
		if (this.calendario1.val()==''){
				fecha=new Date();
				if (this.noches.val()!=''){
					this.nchs=this.noches.val();				
				} 
				fecha.setTime(hoy.getTime()+(this.msXdia*this.nchs));
				this.calendario1.datepicker('setDate', fecha);
			}
		fecha0=this.calendario0.datepicker('getDate');
		fecha1=this.calendario1.datepicker('getDate');
		this.noches.val(Math.round((fecha1.getTime()-fecha0.getTime())/this.msXdia));
	},
		
	customRange: function(input){
		padre=jQuery.data(this,"daterange");
		return {
    			minDate: (input == padre.calendario1.get(0) ? padre.calendario0.datepicker('getDate') : new Date()), 
        		maxDate: +365
				}; 
	},
	
	cambiaFechaInicio: function(input){
		padre=jQuery.data(this,"daterange");
		fecha0=padre.calendario0.datepicker('getDate');
		fecha1=new Date();		
		fecha1.setTime(fecha0.getTime()+(padre.msXdia*padre.noches.val()));
		mes=fecha0.getMonth();
		dia=fecha0.getDate();
		mes1=fecha1.getMonth();
		dia1=fecha1.getDate();
		
		//if ((mes==9 && dia>=25 && dia<31) || (mes1==9 && dia1>=25 ) ){
		//	fechaNueva.setTime(fecha1.getTime()+padre.msXdia);
		//}
		padre.calendario1.datepicker('setDate',fecha1);
	},
		
	cambiaFechaFin: function(input){
		padre=jQuery.data(this,"daterange");
		fecha0=padre.calendario0.datepicker('getDate');
		fecha1=padre.calendario1.datepicker('getDate');
		padre.noches.val(Math.round((fecha1.getTime()-fecha0.getTime())/padre.msXdia));		

	},
	
	cambiaNoches: function(input){
		
		padre=jQuery.data(this,"daterange");
		
		//fecha=padre.calendario0.datepicker('getDate');
		/////////NUEVO RICARDO
		fecha=new Date();
		//////////////
		fechaNueva=new Date();
		fecha0=padre.calendario0.datepicker('getDate');
		fechaNueva.setTime(fecha0.getTime()+padre.msXdia*padre.noches.val());
		mes=fecha0.getMonth();
		dia=fecha0.getDate();
		mes1=fechaNueva.getMonth();
		dia1=fechaNueva.getDate();
		
		//if ((mes==9 && dia>=25) || (mes1==9 && dia1>=25)){
		//	fechaNueva.setTime(fechaNueva.getTime()+padre.msXdia);
		//}
		fecha.setTime(fechaNueva);
		padre.calendario1.datepicker('setDate',fecha);
	},
	
	rangoDays: function(date){
		padre=jQuery.data(this,"daterange");
		//if (padre.calendario0.datepicker('getDate')==null || padre.calendario1.datepicker('getDate')==null ) {
		//	return [true, ''];
		//}
		//console.debug(date + ' ' + padre.calendario1.datepicker('getDate') + ' '+ padre.calendario0.datepicker('getDate'));
	//if (date <= padre.calendario1.datepicker('getDate') && date >= padre.calendario0.datepicker('getDate')){
		//	console.debug('ui-state-active');
	//		return [true, 'ui-state-active'];
	//		return[true,''];	
	//	} 
		
		return [true, ''];

	}
});

