var makedate = function(year, month, day) {
	var date = new Date();
	if($defined(year)) date.setYear(year);
	if($defined(month)) date.setMonth(month-1);
	if($defined(day)) date.setDate(day);
	
	date.setHours(0);
	date.setMinutes(0);
	date.setSeconds(0);
	date.setMilliseconds(0);
	return date;
};
var makedateformat = function(year, month, day) {
	month += 1
	if(day < 10)   day = '0' + day;
	if(month < 10) month = '0' + month;
	var date = day+'/'+month+'/'+year
	return date;
};

var oggi = new Date();
var domani = new Date();
domani.setDate(oggi.getDate()+1)
	oggi.setHours(0);
	oggi.setMinutes(0);
	oggi.setSeconds(0);
	oggi.setMilliseconds(0);
	domani.setHours(0);
	domani.setMinutes(0);
	domani.setSeconds(0);
	domani.setMilliseconds(0);

var getdate = function (input) {
	var date = new Date();
	var part = input.split('/')
	if (part.length=3)
	{
		 date= makedate(part[2], part[1], part[0]);
	}
	else
	{
		date = oggi
	}
	date.setHours(0);
	date.setMinutes(0);
	date.setSeconds(0);
	date.setMilliseconds(0);
	return date
}

var verifica = function(){
	var datafrom = new Date();
	var datato = new Date();
	datafrom = getdate($('datafrom').value);
	datato = getdate($('datato').value);
	if (datafrom<oggi)//se minore di oggi lo forzo
	{
		datafrom=oggi;
		$('datafrom').set('value', makedateformat(datafrom.getFullYear(),datafrom.getMonth(),datafrom.getDate()));
	}
	if (datato<=datafrom)//allora lo resetto ad un giorno superiore di datafrom
	{
		datato.setFullYear(datafrom.getFullYear());
		datato.setMonth(datafrom.getMonth());
		datato.setDate(datafrom.getDate()+1);
		$('datato').set('value', makedateformat(datato.getFullYear(),datato.getMonth(),datato.getDate()));
	}
	if (datato<domani)//controllo poco utile, ma pur sempre controllo
	{
		datato=domani;
		$('datato').set('value', makedateformat(datato.getFullYear(),datato.getMonth(),datato.getDate()));
	}
	differenza=datato-datafrom
	giorni_differenza = new String(parseInt(differenza/86400000));
	$('notti').set('value', giorni_differenza);

};

vlaDatePicker.implement({
	pick: function(_date) {
		if(this.leadingZero) {
			if(_date.day < 10)   _date.day = '0' + _date.day;
			if(_date.month < 10) _date.month = '0' + _date.month;
		}
		if(this.twoDigitYear) _date.year = _date.year.toString().substring(2, 4);
		
		if(this.separateInput) {
			if(this.element.day)   this.element.day.set('value', _date.day);
			if(this.element.month) this.element.month.set('value', _date.month);
			if(this.element.year)  this.element.year.set('value', _date.year);
			this.hide();
		} else {
			switch(this.format) {
				case "m/d/y": this.element.set('value', _date.month + this.separator + _date.day + this.separator + _date.year); break;
				case "y/m/d": this.element.set('value', _date.year + this.separator + _date.month + this.separator + _date.day); break;
				case "y/d/m": this.element.set('value', _date.year + this.separator +  _date.day + this.separator + _date.month); break;
				case "d/m/y": default: this.element.set('value', _date.day + this.separator + _date.month + this.separator + _date.year);
			}
			this.hide();
		}
		verifica();
	}
});