var ih_months_names_it = ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'];
var ih_months_names_en = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];

var ih_dow_names_it = ['Dom', 'Lun', 'Mar', 'Mer', 'Gio', 'Ven', 'Sab'];
var ih_dow_names_en = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];


function getDaysInMonths(fullDateObj) {
	y = fullDateObj.getFullYear();
	
	ih_days_in_months = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];	
	
	is_leap_in = ( (y % 4 == 0 && y % 100 != 0 ) || (y % 4 == 0 && y % 400 == 0 ) ) ? true : false;

	if (is_leap_in)
		ih_days_in_months[1] = 29;
	else
		ih_days_in_months[1] = 28;

	return ih_days_in_months;
}


// Inizializza check-in e check-out
function buildCheckInCheckOut(lang) {
	var d = new Date();

	daysInMonths = getDaysInMonths(d);
	
	// Checkin: Mese
	html = "";	
	tmpMonth = 0;
	tmpYear = parseInt(d.getFullYear());
	for (m = 0; m < 12; m++) {
		if ( (d.getMonth() + m) > 11 ) {
			tmpMonth = (d.getMonth() + m) - 12; 
			tmpYear = ( tmpYear == parseInt(d.getFullYear()) ? tmpYear + 1 : tmpYear );
		}
		else {
			tmpMonth = (d.getMonth() + m);
		}
		
		html += "<option value=\"" + (tmpMonth + 1).toString() + "-" + tmpYear.toString() + "\">" + eval("ih_months_names_" + lang)[tmpMonth] + " '" + tmpYear.toString().substr(2,2) + "</option>";
	}	
	$('#selCheckInMonth').html(html);
	
	
	// Checkin: Giorno
	html = "";	
	for (day = d.getDate(); day <= daysInMonths[d.getMonth()]; day++) {
		tmpDate = new Date(d.getFullYear(), d.getMonth(), day);
		html += "<option value=\"" + day.toString() + "\">" + eval("ih_dow_names_" + lang)[tmpDate.getDay()] + " " + day.toString() + "</option>";
	}
	$('#selCheckInDay').html(html);	
	
	// Checkin: datepick
	$('#dtpCheckIn').datepicker("setDate", d);


	// Checkout: Mese
	html = "";	
	tmpMonth = 0;
	tmpYear = parseInt(d.getFullYear());
	for (m = 0; m < 12; m++) {
		if ( (d.getMonth() + m) > 11 ) {
			tmpMonth = (d.getMonth() + m) - 12; 
			tmpYear = ( tmpYear == parseInt(d.getFullYear()) ? tmpYear + 1 : tmpYear );
		}
		else {
			if (d.getDate() == daysInMonths[d.getMonth()])
				m += 1;
			tmpMonth = (d.getMonth() + m);
		}
		
		html += "<option value=\"" + (tmpMonth + 1).toString() + "-" + tmpYear.toString() + "\">" + eval("ih_months_names_" + lang)[tmpMonth] + " '" + tmpYear.toString().substr(2,2) + "</option>";
	}	
	$('#selCheckOutMonth').html(html);
	

	// Checkout: Giorno
	html = "";	
	tmpDay = 0;
	m = d.getMonth();
	y = parseInt(d.getFullYear());

	if ( d.getDate() == daysInMonths[d.getMonth()] ) {
		if (d.getMonth() == 11) {
			m = 0;
			y++;
			d = new Date(y, m, 1);
		}else{
			d = new Date(y, d.getMonth() + 1, 1);
		}
	}
	else {
		d = new Date(y, m, d.getDate() + 1);
	}


	// Checkout: datepick
	$('#dtpCheckOut').datepicker("setDate", d);
		

	for (day = d.getDate(); day <= daysInMonths[d.getMonth()]; day++) {
		tmpDate = new Date(d.getFullYear(), d.getMonth(), day);
		html += "<option value=\"" + day.toString() + "\">" + eval("ih_dow_names_" + lang)[tmpDate.getDay()] + " " + day.toString() + "</option>";
	}
	$('#selCheckOutDay').html(html);		
}


function triggerFromCheckInMonth(lang, excludeDatePickers) {
	now = new Date();
	d = $('#selCheckInMonth').val().toString().split("-");
	daysInMonths = getDaysInMonths(now);
	if ( parseInt(d[0]) - 1 == parseInt(now.getMonth()) )
		d = new Date(parseInt(d[1]), parseInt(d[0]) - 1, now.getDate());
	else
		d = new Date(parseInt(d[1]), parseInt(d[0]) - 1, 1);

	// Checkin: Giorno
	html = "";	
	for (day = d.getDate(); day <= daysInMonths[d.getMonth()]; day++) {
		tmpDate = new Date(d.getFullYear(), d.getMonth(), day);
		html += "<option value=\"" + day.toString() + "\">" + eval("ih_dow_names_" + lang)[tmpDate.getDay()] + " " + day.toString() + "</option>";
	}
	$('#selCheckInDay').html(html);	
	
	// Checkin: datepick
	if (!excludeDatePickers)
		$('#dtpCheckIn').datepicker("setDate", d);
	

	mo = d.getMonth();
	ye = parseInt(d.getFullYear());

	if ( d.getDate() == daysInMonths[d.getMonth()] ) {
		if (d.getMonth() == 11) {
			mo = 0;
			ye++;
		}
		else
			mo++;
			
		d = new Date(ye, mo, 1);
	}
	else {
		d = new Date(ye, mo, d.getDate() + 1);
	}

	/*FZ, 2010-09-14
	// Checkout: Mese
	html = "";	
	tmpMonth = 0;
	tmpYear = parseInt(d.getFullYear());
	for (m = 0; m < 12; m++) {
		tmpMonth = (d.getMonth() + m);
		html += "<option value=\"" + (tmpMonth + 1).toString() + "-" + tmpYear.toString() + "\"" + ( tmpMonth == d.getMonth() ? "selected" : "" ) + ">" + eval("ih_months_names_" + lang)[tmpMonth] + " '" + tmpYear.toString().substr(2,2) + "</option>";
	}	
	$('#selCheckOutMonth').html(html);
	*/
	// Checkout: Mese
	html = "";	
	tmpMonth = 0;
	tmpYear = parseInt(d.getFullYear());
	for (m = 0; m < 12; m++) {
		if ( (d.getMonth() + m) > 11 ) {
			tmpMonth = (d.getMonth() + m) - 12; 
			tmpYear = ( tmpYear == parseInt(d.getFullYear()) ? tmpYear + 1 : tmpYear );
		}
		else {
			tmpMonth = (d.getMonth() + m);
		}
		
		html += "<option value=\"" + (tmpMonth + 1).toString() + "-" + tmpYear.toString() + "\">" + eval("ih_months_names_" + lang)[tmpMonth] + " '" + tmpYear.toString().substr(2,2) + "</option>";
	}	
	$('#selCheckOutMonth').html(html);
	

	// Checkout: Giorno
	html = "";	


	// Checkout: datepick
	if (!excludeDatePickers) {
		$('#dtpCheckOut').datepicker("setDate", d);
		$('#dtpCheckOut').datepicker("option", {minDate: d});
	}
	

	for (day = d.getDate(); day <= daysInMonths[d.getMonth()]; day++) {
		tmpDate = new Date(d.getFullYear(), d.getMonth(), day);
		html += "<option value=\"" + day.toString() + "\">" + eval("ih_dow_names_" + lang)[tmpDate.getDay()] + " " + day.toString() + "</option>";
	}
	$('#selCheckOutDay').html(html);		

}


function triggerFromCheckInDay(lang, excludeDatePickers) {
	d = $('#selCheckInMonth').val().toString().split("-");
	now = new Date(parseInt(d[1]), parseInt(d[0]) - 1, $('#selCheckInDay').val() );
	daysInMonths = getDaysInMonths(now);
	if ( parseInt(d[0]) - 1 == parseInt(now.getMonth()) )
		d = new Date(parseInt(d[1]), parseInt(d[0]) - 1, now.getDate());
	else
		d = new Date(parseInt(d[1]), parseInt(d[0]) - 1, 1);

	// Checkin: datepick
	if (!excludeDatePickers)	
		$('#dtpCheckIn').datepicker("setDate", d);
	

	mo = d.getMonth();
	ye = parseInt(d.getFullYear());

	if ( d.getDate() == daysInMonths[d.getMonth()] ) {
		if (d.getMonth() == 11) {
			mo = 0;
			ye++;
		}
		else
			mo++;
			
		d = new Date(ye, mo, 1);
	}
	else {
		d = new Date(ye, mo, d.getDate() + 1);
	}

	/* FZ, 2010-09-14
	// Checkout: Mese
	html = "";	
	tmpMonth = 0;
	tmpYear = parseInt(d.getFullYear());
	for (m = 0; m < 12; m++) {
		tmpMonth = (d.getMonth() + m);
		html += "<option value=\"" + (tmpMonth + 1).toString() + "-" + tmpYear.toString() + "\"" + ( tmpMonth == d.getMonth() ? "selected" : "" ) + ">" + eval("ih_months_names_" + lang)[tmpMonth] + " '" + tmpYear.toString().substr(2,2) + "</option>";
	}	
	$('#selCheckOutMonth').html(html);
	*/
	// Checkout: Mese
	html = "";	
	tmpMonth = 0;
	tmpYear = parseInt(d.getFullYear());
	for (m = 0; m < 12; m++) {
		if ( (d.getMonth() + m) > 11 ) {
			tmpMonth = (d.getMonth() + m) - 12; 
			tmpYear = ( tmpYear == parseInt(d.getFullYear()) ? tmpYear + 1 : tmpYear );
		}
		else {
			tmpMonth = (d.getMonth() + m);
		}
		
		html += "<option value=\"" + (tmpMonth + 1).toString() + "-" + tmpYear.toString() + "\">" + eval("ih_months_names_" + lang)[tmpMonth] + " '" + tmpYear.toString().substr(2,2) + "</option>";
	}	
	$('#selCheckOutMonth').html(html);



	// Checkout: Giorno
	html = "";	


	// Checkout: datepick
	if (!excludeDatePickers) {	
		$('#dtpCheckOut').datepicker("setDate", d);
		$('#dtpCheckOut').datepicker("option", {minDate: d});
	}	

	for (day = d.getDate(); day <= daysInMonths[d.getMonth()]; day++) {
		tmpDate = new Date(d.getFullYear(), d.getMonth(), day);
		html += "<option value=\"" + day.toString() + "\">" + eval("ih_dow_names_" + lang)[tmpDate.getDay()] + " " + day.toString() + "</option>";
	}
	$('#selCheckOutDay').html(html);		

}


function triggerFromCheckOutMonth(lang, excludeDatePickers) {
	d = $('#selCheckOutMonth').val().toString().split("-");
	d = new Date(parseInt(d[1]), parseInt(d[0]) - 1, 1);		

	// Checkout: Giorno
	html = "";	


	// Checkout: datepick
	if (!excludeDatePickers)	
		$('#dtpCheckOut').datepicker("setDate", d);
		

	for (day = d.getDate(); day <= daysInMonths[d.getMonth()]; day++) {
		tmpDate = new Date(d.getFullYear(), d.getMonth(), day);
		html += "<option value=\"" + day.toString() + "\">" + eval("ih_dow_names_" + lang)[tmpDate.getDay()] + " " + day.toString() + "</option>";
	}
	$('#selCheckOutDay').html(html);		
}


function triggerFromDatePicker(dateText, inst, lang, inOut) {
	var v = dateText.toString().split("/");
	
	if (lang != "it") {
		// Se il formato non è DD/MM/YYYY allora lo normalizzo. 
		tmp1 = v[0];
		tmp0 = v[1];
		
		v[0] = tmp0;
		v[1] = tmp1;
	}
	// Mese, strip degli zero
	v[1] = v[1].replace(/^[0]+/g,"");
	// Giorno, strip degli zero
	v[0] = v[0].replace(/^[0]+/g,""); 

	var d = new Date(parseInt(v[2]), parseInt(v[1]) - 1, parseInt(v[0]) ); 

	if (inOut == "in") {
		$('#selCheckInMonth').val(v[1] + "-" + v[2]);
		triggerFromCheckInMonth(lang, false);
		$('#selCheckInDay').val(v[0]);
		triggerFromCheckInDay(lang, false);
	}
	else {
		$('#selCheckOutMonth').val(v[1] + "-" + v[2]);
		triggerFromCheckOutMonth(lang, true);
		$('#selCheckOutDay').val(v[0]);
	}	
}


function setUpDialog(id, isModal) {
	$(function() {
		$("#" + id).dialog({
			autoOpen: false,
			height: 300,
			width: 350,
			modal: isModal
		});
	});
}


function readCookie(name) {
	if (document.cookie == '') {
		return false;
	} else {
		var firstChar, lastChar;
	
		var cookieArr = document.cookie;
	
		firstChar = cookieArr.indexOf(name);
	
		if(firstChar != -1) {
	
		firstChar += name.length + 1;
	
		lastChar = cookieArr.indexOf(';', firstChar);
	
		if(lastChar == -1) lastChar = cookieArr.length;
			return unescape(cookieArr.substring(firstChar, lastChar));
		} else {
			return false;
		}
	}
}




