// Italiano
var aryMesiIT = new Array('Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre');
var aryGiorniIT = new Array('Domenica','Luned%EC','Marted%EC','Mercoled%EC','Gioved%EC','Venerd%EC','Sabato');
var aryMesiBreviIT = new Array('gen','feb','mar','apr','mag','giu','lug','ago','set','ott','nov','dic');
var aryGiorniBreviIT = new Array('Dom','Lun','Mar','Mer','Gio','Ven','Sab');
var aryTratIT = new Array('Mostra tutti i disponibili','Bed %26 Breakfast','Mezza Pensione','Pensione Completa','Solo Pernottamento');

// English
var aryGiorniEN = new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
var aryMesiEN = new Array('January','February','March','April','May','June','July','August','September','October','November','December');
var aryMesiBreviEN = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
var aryGiorniBreviEN = new Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
var aryTratEN = new Array('Show any available','Bed %26 Breakfast','Half Board','Full Board','Room Only');

// Deutsch
var aryGiorniDE = new Array('Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag');
var aryMesiDE = new Array('Januar','Februar','Maerz','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');
var aryMesiBreviDE = new Array('Jan','Feb','Mrz','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez');
var aryGiorniBreviDE = new Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
//var aryTratDE = new Array('Show any available','%DCbernachtung/Fr%FChst%FCck','Halbpension','Vollpension','%DCbernachtung');
var aryTratDE = new Array('Show any available','%DCbernachtung/Fr%FChst%FCck','Halbpension','Vollpension','%DCbernachtung');

// Français
var aryGiorniFR = new Array('Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi');
var aryMesiFR = new Array('Janvier','F%E9vrier','Mars','Avril','Mai','Juin','Juillet','Ao%FBt','Septembre','Octobre','Novembre','D%E9cembre');
var aryMesiBreviFR = new Array('janv.','f%E9vr.','mars','avr.','mai','juin','juil.','ao%FBt','sept.','oct.','nov.','d%E9c.');
var aryGiorniBreviFR = new Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
var aryTratFR = new Array('Show any available','Bed %26 Breakfast','Demi-pension','Pension compl%E8te','Seulement chambres');

// Español
var aryMesiES = new Array('Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre');
var aryGiorniES = new Array('Domingo', 'Lunes', 'Martes', 'Mi%E9rcoles', 'Jueves', 'Viernes', 'Sabado');
var aryMesiBreviES = new Array('ene','feb','mar','abr','may','jun','jul','ago','sep','oct','nov','dic');
var aryGiorniBreviES = new Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
var aryTratES = new Array('Show any available','Alojamiento y desayuno','Media pensi%F3n','Pensi%F3n completa','Solo alojamiento');

// Português
//var aryMesiPT = new Array('Janeiro','Fevereiro','Mar%E7o','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro');
var aryMesiBreviPT = new Array('jan','fev','mar','abr','mai','jun','jul','ago','set','out','nov','dez');
var aryGiorniPT = new Array('Domingo','Segunda-feira','Ter%E7a-feira','Quarta-feira','Quinta-feira','Sexta-feira','S%E1bado');
var aryGiorniBreviPT = new Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
var aryTratPT = new Array('Amostras disponíveis','Bed %26 Breakfast','Meia-pens%E3o','Pens%E3o Completa','S%F3 Pernoite');


var aryGiorni = null;
var aryMesi = null;
var aryMesiBrevi = null;
var aryGiorniBrevi = null;
var aryTrat = null;
var aryGiorniSel = null;
var aryMesiSel = null;

var Step = 1;
var CalcNotti = false;

var DataArrivoGiorno = 'ddlArrivoGiorno';
var DataArrivoMese = 'ddlArrivoMese';
var DataArrivoAnno = 'ddlArrivoAnno';
var DataPartenzaGiorno = 'ddlPartenzaGiorno';
var DataPartenzaMese = 'ddlPartenzaMese';
var DataPartenzaAnno = 'ddlPartenzaAnno';
var NNotti = 'ddlNotti';

var Persone = 'ddlPersone';
var Bambini = 'ddlBambini';
var Camere = 'ddlCamere';
var Trattamenti = 'ddlTrattamento';
var code = 'code';

var DivGiornoArrivo = "dvGiornoArrivo";
var DivGiornoPartenza = "dvGiornoPartenza";

var GuidStruttura = '';
var CodLingua = 'EN';
var GAIntegration = true;           // true = abilita l'integrazione con Google Analytics con post cross-domain
var bolPrenOggiSi = true;		// true = consente prenotazione giorno stesso
var bolSoloMultipli = false;    // true = imposta valori multipli del minimum stay
var intReleaseDays = 1;				// imposta i giorni di anticipo
var intMinStay = 1;				// imposta i giorni di minimum stay
var strGiorni = '0,1,2,3,4,5,6';
var aryGiorniChkIn = this.strGiorni.split(',');
var strTratSel = '1,2,3,4';
var aryTratSel = this.strTratSel.split(',');

var TipoDescrGiorni = 1;	// se diverso da 1 = giorni brevi
var TipoDescrMesi = 0;		// se diverso da 1 = mesi brevi
var TipoDescrAnni = 1;		// se diverso da 1 = anno di 2 cifre

var bolChkConfigurazione = true;

var MaxCam = 4;
var MaxAdu = 6;
var MaxKid = 4;
var minEtaBambini = 0;
var maxEtaBambini = 15;
var aryCam = new Array();

//var HttpHost = 'http://simplebooking.local';
var HttpHost = 'https://www.simplebooking.it';
//var HttpHost = 'http://simplebooking.qntdev.com';
var BookUrl = HttpHost + '/booking.aspx';
var CancUrl = HttpHost + '/booking.aspx';
var Calendar = HttpHost + '/Inclusioni/Popup/calendario_javascript.aspx';

this.onload = function() 
{ 
	try { InizializzaModulo(); }
	catch (ex) { }
}

var scriptloaded = false;

function InizializzaModulo()
{
	try
	{
		this.GuidStruttura = GetObj('GUID').value;
		this.CodLingua = GetObj('LANG').value;
		if(this.GuidStruttura != null && this.CodLingua != null)
		{
			if(this.scriptloaded == false)
			{
				try
				{
					try
					{
						this.aryGiorni = eval('aryGiorni' + this.CodLingua);
						this.aryMesi = eval('aryMesi' + this.CodLingua);
						this.aryMesiBrevi = eval('aryMesiBrevi' + this.CodLingua);
						this.aryGiorniBrevi = eval('aryGiorniBrevi' + this.CodLingua);
						this.aryTrat = eval('aryTrat' + this.CodLingua);
					}
					catch(exp)
					{
						this.aryGiorni = this.aryGiorniEN;
						this.aryMesi = this.aryMesiEN;
						this.aryMesiBrevi = this.aryMesiBreviEN;
						this.aryGiorniBrevi = this.aryGiorniBreviEN;
					}
					if(this.aryGiorni == null || this.aryMesi == null || this.aryMesiBrevi == null || this.aryGiorniBrevi == null || this.aryTrat == null)
					{
						this.aryGiorni = this.aryGiorniEN;
						this.aryMesi = this.aryMesiEN;
						this.aryMesiBrevi = this.aryMesiBreviEN;
						this.aryGiorniBrevi = this.aryGiorniBreviEN;
						this.aryTrat = this.aryTratEN;
					}
					try 
					{ 
						if(this.TipoDescrMesi) 
						{
							if(this.TipoDescrMesi == 1)
								this.aryMesiSel = this.aryMesi;
							else
								this.aryMesiSel = this.aryMesiBrevi;
						}
						else
						{ 
							this.aryMesiSel = this.aryMesiBrevi;
						}
					}
					catch(exp) 
					{ 
						this.aryMesiSel = this.aryMesiBrevi;
					}
					try 
					{ 
						if(this.TipoDescrGiorni) 
						{
							if(this.TipoDescrGiorni== 1)
								this.aryGiorniSel = this.aryGiorni;
							else
								this.aryGiorniSel = this.aryGiorniBrevi;
						} 
						else
						{ 
							this.aryGiorniSel = this.aryGiorniBrevi;
						}
					}
					catch(exp) 
					{ 
						this.aryGiorniSel= this.aryGiorniBrevi;
					}
				
					var DalDayObj = GetObj(DataArrivoGiorno);
					var DalMonthObj = GetObj(DataArrivoMese);
					var DalYearObj = GetObj(DataArrivoAnno);
					var NNottiObj = GetObj(NNotti);
					var AlDayObj = GetObj(DataPartenzaGiorno);
					var AlMonthObj = GetObj(DataPartenzaMese);
					var AlYearObj = GetObj(DataPartenzaAnno);
					
					// Recupero parametri da querystring
					var QSArrivoGiorno = getQuerystring('ddlArrivoGiorno');
					var QSArrivoMese = getQuerystring('ddlArrivoMese');
					var QSArrivoAnno = getQuerystring('ddlArrivoAnno');					
					var QSPartenzaGiorno = getQuerystring('ddlPartenzaGiorno');
					var QSPartenzaMese = getQuerystring('ddlPartenzaMese');
					var QSPartenzaAnno = getQuerystring('ddlPartenzaAnno');		
					var isQSArrivoOk = (QSArrivoGiorno != '' && (!isNaN(QSArrivoGiorno)) && QSArrivoMese != '' && (!isNaN(QSArrivoMese)) && QSArrivoAnno != '' && (!isNaN(QSArrivoAnno)))			
					var isQSPartenzaOk = (QSPartenzaGiorno != '' && (!isNaN(QSPartenzaGiorno)) && QSPartenzaMese != '' && (!isNaN(QSPartenzaMese)) && QSPartenzaAnno != '' && (!isNaN(QSPartenzaAnno)))			

					var QSCamere = getQuerystring('ddlCamere');
					var QSPersone = getQuerystring('ddlPersone');
					var QSTrattamento = getQuerystring('IDT');

					
					var PerObj = GetObj(Persone);
					var CamObj = GetObj(Camere);
					var TratObj = GetObj(Trattamenti);
					
					if(
						DalDayObj == null &&
						DalMonthObj == null &&
						DalYearObj == null &&
						AlDayObj == null && 
						AlMonthObj == null &&
						AlYearObj == null &&
						PerObj == null
					)
					{
						MostraErroreConfigurazione();
						bolChkConfigurazione = false; 
						return;
					}
					
					CalcNotti = (NNottiObj != null);
				
					DalDayObj.onchange = function() { CheckDates(); }
					DalMonthObj.onchange = function() { SetDays('0'); }
					DalYearObj.onchange = function() { SetDays('0'); }
					if(!CalcNotti)
					{
						AlDayObj.onchange = function() { CheckDates(); }
						AlMonthObj.onchange = function() { SetDays('1'); }
						AlYearObj.onchange = function() { SetDays('1'); }
					}
				
					var Today = new Date();
					var TodayYear = Today.getFullYear();
					var TodayMonth = Today.getMonth();
					var TodayDay = Today.getDate() + intReleaseDays; //+ ((bolPrenOggiSi == false) ? 1 : 0);
					var Today = new Date(parseInt(TodayYear), parseInt(TodayMonth), parseInt(TodayDay));
					var TodayYear = Today.getFullYear();
					var TodayMonth = Today.getMonth();
					var TodayDay = Today.getDate() ;
				
					for(var i = 1; i <= 31; i++)
					{
						var idx = DalDayObj.options.length;
						var strI = new String(i);
						DalDayObj.options[idx] = new Option(((strI.length < 2) ? '0' + strI : strI));
						DalDayObj.options[idx].value = strI;
						if(!CalcNotti)
						{
							AlDayObj.options[idx] = new Option(((strI.length < 2) ? '0' + strI : strI));
							AlDayObj.options[idx].value = strI;
						}
					}
					for(var j = 0; j < 12; j++)
					{
						var idx = DalMonthObj.options.length;
						DalMonthObj.options[idx] = new Option(unescape(this.aryMesiSel[j]));
						DalMonthObj.options[idx].value = (j+1);
						if(!CalcNotti)
						{
							AlMonthObj.options[idx] = new Option(unescape(this.aryMesiSel[j]));
							AlMonthObj.options[idx].value = (j+1);
						}
					}
					try { if(this.intTipoDescrAnni) { this.TipoDescrAnni = this.intTipoDescrAnni; } }
					catch(exp) { this.TipoDescrAnni = 1; }
					for(var k = 0; k < 3; k++)
					{
						var Year = TodayYear + k;
						var idx = DalYearObj.options.length;
						if(this.TipoDescrAnni == 1)
						{
							DalYearObj.options[idx] = new Option(Year);
							DalYearObj.options[idx].value = Year;
							if(!CalcNotti)
							{
								AlYearObj.options[idx] = new Option(Year);
								AlYearObj.options[idx].value = Year;
							}
						} 
						else
						{
							var strY = new String(Year);
							DalYearObj.options[idx] = new Option(strY.substring(2,4));
							DalYearObj.options[idx].value = Year;
							if(!CalcNotti)
							{
								AlYearObj.options[idx] = new Option(strY.substring(2,4));
								AlYearObj.options[idx].value = Year;
							}
						}
					}
					if(CalcNotti)
					{
						for(var l = 1; l <= 31; l++)
						{
							var idx = NNottiObj.options.length;
							NNottiObj.options[idx] = new Option(l);
							NNottiObj.options[idx].value = l;
						}
					}
					
					DefVal = 1;
					if (QSCamere != null && QSCamere != '' && !isNaN(QSCamere)) {
						DefVal = parseInt(QSCamere);
					}
					if(CamObj != null)
					{
						for(var n = 1; n <= MaxCam; n++)
						{
							var idx = CamObj.options.length;
							CamObj.options[idx] = new Option(n);
							CamObj.options[idx].value = n;
							if(n == DefVal) { CamObj.options[idx].selected = true; }
						}
						SetCamere(CamObj);
					}
					CamObj.onchange = function() { SetCamere(this); }
					
					try { if(this.PrenotaOggi) { this.bolPrenOggiSi = this.PrenotaOggi; } }
					catch(exp) { this.bolPrenOggiSi = false; }
					try { if(this.SoloMultipli) { this.bolSoloMultipli = this.SoloMultipli; } }
					catch(exp) { this.bolSoloMultipli = false; }
					try { if(this.MininumStay) { this.intMinStay = this.MininumStay; } }
					catch(exp) { this.intMinStay = 1; }
					try
					{ 
						if(this.GiorniPrenotabili == undefined) { this.strGiorni = this.GiorniPrenotabili; } 
						this.aryGiorniChkIn = this.strGiorni.split(',');
					}
					catch(exp) 
					{ 
						this.strGiorni = '0,1,2,3,4,5,6'; 
						this.aryGiorniChkIn = this.strGiorni.split(',');
					}
					try
					{
						if(this.TrattamentiSelezionati == undefined) { this.strTratSel = this.TrattamentiSelezionati; }
						this.aryTratSel = this.strTratSel .split(',');
					}
					catch(exp) 
					{ 
						this.strTratSel = '1,2,3,4';
						this.aryTratSel = this.strTratSel .split(',');
					}
				
					if (isQSArrivoOk)
					{
						SetDays('0', parseInt(QSArrivoGiorno), parseInt(QSArrivoMese), parseInt(QSArrivoAnno));		
					}
					else
						SetDays('0', TodayDay, (TodayMonth+1), TodayYear);
					
					if (isQSPartenzaOk)
						SetDays('1', parseInt(QSPartenzaGiorno), parseInt(QSPartenzaMese), parseInt(QSPartenzaAnno));


					DefVal = 0;
					if (QSTrattamento != null && QSTrattamento != '' && !isNaN(QSTrattamento)) 
					{
						DefVal = parseInt(QSTrattamento);
					}

					if(TratObj != null)
					{
						TratObj.options[0] = new Option(aryTrat[0]);
						TratObj.options[0].value = 0;
						for(var n = 0; n < aryTratSel.length; n++)
						{
							var idx = TratObj.options.length;
							TratObj.options[idx] = new Option(unescape(aryTrat[aryTratSel[n]]));
							TratObj.options[idx].value = aryTratSel[n];
							if(aryTratSel[n] == DefVal) { TratObj.options[idx].selected = true; }
						}
					}
					this.scriptloaded = true;
				}
				catch(e)
				{ 
					MostraErroreConfigurazione();
					bolChkConfigurazione = false; 
				}
			}
		}
	}
	catch (exp) {}
}
function MostraErroreConfigurazione()
{
	var strMex = 'Errore di configurazione!\n';
	strMex += 'Si  verificato un errore durante l\'inizializzazione del modulo di ricerca.\n';
	strMex += 'Ecco un riepilogo degli oggetti mancanti:';

	var DalDayObj = GetObj(DataArrivoGiorno);
	var DalMonthObj = GetObj(DataArrivoMese);
	var DalYearObj = GetObj(DataArrivoAnno);
	var AlDayObj = GetObj(DataPartenzaGiorno);
	var AlMonthObj = GetObj(DataPartenzaMese);
	var AlYearObj = GetObj(DataPartenzaAnno);
		
	var PerObj = GetObj(Persone);
		
	if(DalDayObj == null) { strMex += '\n - Selezione giorno arrivo'; }
	if(DalMonthObj == null) { strMex += '\n - Selezione mese arrivo'; }
	if(DalYearObj == null) { strMex += '\n - Selezione anno arrivo'; }
	if(AlDayObj == null) { strMex += '\n - Selezione giorno partenza'; }
	if(AlMonthObj == null) { strMex += '\n - Selezione mese partenza'; }
	if(AlYearObj == null) { strMex += '\n - Selezione anno partenza'; }
	if(PerObj == null) { strMex += '\n - Selezione numero di persone'; }
	alert(strMex);
}
var wndFrm = null;

function SetCamere(ddlCam)
{
	NCam = parseInt(ddlCam[ddlCam.selectedIndex].value, 10);
	for(var i = 1; i <= MaxCam; i++)
	{
		var dvCam = document.getElementById('dvCam' + i);
		if(dvCam != null)
		{
			if(i <= NCam)
			{
				PreparaDatiCamere(i);
				dvCam.style.display = 'block';
			}
			else
			{
				EliminaDati(i);
				dvCam.style.display = 'none';
			}
		}
		var ddlB = document.getElementById('Cam' + i + 'Bambini');
		if(ddlB != null && ddlB.options.length > 0)
			SetFasce(ddlB, i);
	}
}
function SetFasce(ddlKid, idCam)
{
	NKid = parseInt(ddlKid[ddlKid.selectedIndex].value, 10);
	for(var i = 1; i <= MaxKid; i++)
	{
		var trKid = document.getElementById('dvEta' + idCam + i);
		if(trKid != null)
		{
			if(i <= NKid)
				trKid.style.display = 'block';
			else
				trKid.style.display = 'none';
		}
	}
}
function PreparaDatiCamere(IDCam)
{
	var ddlA = document.getElementById('Cam' + IDCam + 'Adulti');
	var ddlB = document.getElementById('Cam' + IDCam + 'Bambini');
	if(ddlA.options.length != MaxAdu) {
		for(i = 1; i <= MaxAdu; i++) {
			var idx = ddlA.options.length;
			ddlA.options[idx] = new Option(i);
			ddlA.options[idx].value = i;
			if(aryCam.length >= IDCam) {
				if(i == ContaAdulti(aryCam[IDCam - 1])) {
					ddlA.options[idx].selected = true;
				}
				else if(i == 2 && ddlA.selectedIndex == -1) {
					ddlA.options[idx].selected = true;
				}
			}
			else if(i == 2) {
				ddlA.options[idx].selected = true;
			}
		}
	}
	if(ddlB != null && (ddlB.options.length-1) != MaxKid) {
		for(i = 0; i <= MaxKid; i++) {
			var idx = ddlB.options.length;
			ddlB.options[idx] = new Option(i);
			ddlB.options[idx].value = i;
			if(aryCam.length >= IDCam) {
				if(i == ContaBambini(aryCam[IDCam - 1])) {
					ddlB.options[idx].selected = true;
					SetFasce(ddlB, IDCam);
				}
			}
		}
	}
	for(var i = 1; i <= MaxKid; i++) {
		var ddlF = document.getElementById('Cam' + IDCam + 'Fascia' + i);
		if (ddlF != null && ddlF.options.length != ((maxEtaBambini - minEtaBambini) + 1)) {
			var ChkKid = 0;
			for (var e = minEtaBambini; e <= maxEtaBambini; e++) {
				var idx = ddlF.options.length;
				ddlF.options[idx] = new Option(e);
				ddlF.options[idx].value = e;
				if (aryCam.length >= IDCam) {
					if (e == GetFascia(aryCam[IDCam - 1], i))
						ddlF.options[idx].selected = true;
				}
			}
		}
	}
}
function EliminaDati(IDCam)
{
	var ddlA = document.getElementById('Cam' + IDCam + 'Adulti');
	var ddlB = document.getElementById('Cam' + IDCam + 'Bambini');
	
	for(var a = ddlA.options.length; a >= 0; a--) { ddlA.options[a] = null; }
	if(ddlB != null)
	{
		for(var b = ddlB.options.length; b >= 0; b--) { ddlB.options[b] = null; }
		for(var i = 1; i <= MaxKid; i++)
		{
			var ddlF = document.getElementById('Cam' + IDCam + 'Fascia' + i);
			var trF = document.getElementById('dvEta' + IDCam + i);
			trF.style.display = 'none';
			for(var f = ddlF.options.length; f >= 0; f--) { ddlF.options[f] = null; }
		}
	}
}
function RecuperaCapienzaCamere(ddl)
{
	//var ddl = document.getElementById(ddlCam);
	var hdnNP = document.getElementById('ddlPersone');
	var hdn = document.getElementById('CAP');
	hdn.value = '';
	var NCam = parseInt(ddl[ddl.selectedIndex].value, 10);
	var nTotAdu = 0;
	for(var i = 1; i <= NCam; i++)
	{
		var cam = '';
		var dvCam = document.getElementById('dvCam' + i);
		if(dvCam != null && dvCam.style.display != 'none')
		{
			var ddlA = document.getElementById('Cam' + i + 'Adulti');
			var ddlB = document.getElementById('Cam' + i + 'Bambini');

			var NAdu = parseInt(ddlA[ddlA.selectedIndex].value, 10);
			nTotAdu += NAdu;
			for(var na = 1; na <= NAdu; na++)
				cam += ((cam.length > 0) ? ',' : '') + 'A';

			if(ddlB != null)
			{
				var NBam = parseInt(ddlB[ddlB.selectedIndex].value, 10);
				for(var nb = 1; nb <= NBam; nb++)
				{
					var ddlF = document.getElementById('Cam' + i + 'Fascia' + nb);
					cam += ((cam.length > 0) ? ',' : '') + ddlF[ddlF.selectedIndex].value;
				}
			}
		}
		if(cam.length > 0)
			hdn.value += ((hdn.value.length > 0) ? '|' : '') + cam;
	}
	hdnNP.value = nTotAdu;
	return hdn.value.length > 0;
}
function ContaAdulti(str)
{
	var aryCap = str.split(',');
	var ret = 0;
	for(var i = 0; i < aryCap.length; i++)
	{
		if(aryCap[i] == 'A')
			ret++;
	}
	return ret;
}
function ContaBambini(str)
{
	var aryCap = str.split(',');
	var ret = 0;
	for(var i = 0; i < aryCap.length; i++)
	{
		if(aryCap[i] != 'A')
			ret++;
	}
	return ret;
}

function getQuerystring(key, default_)
{
  if (default_==null) default_="";
  key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
  var qs = regex.exec(window.location.href);
  if(qs == null)
    return default_;
  else
    return qs[1];
} 
var wndFrm = null;
function Ricerca()
{
	if(this.bolChkConfigurazione == false) { MostraErroreConfigurazione(); return; }
	
	var CamObj = GetObj(Camere);
	this.CheckDates();
	this.RecuperaCapienzaCamere(CamObj);
	
	var wndPram = 'scrollbars=no,resizable=yes,location=no,menubar=no,status=yes,width=630,height=400';
	if(wndFrm != null) { if(!wndFrm.closed) { wndFrm.close(); } }
	var Name = new String('OnlineBooking_' + this.GuidStruttura);
	var re = /-/g;
	wndFrm = window.open('', Name.replace(re, ''), wndPram);
	//var wndFrm = window.open('', 'OnlineBooking', '');
	if(wndFrm != null)
	{
		
		try { ImpostaLoad(wndFrm); }
		catch(ex)
		{ 
			if(!wndFrm.closed) { wndFrm.close(); }
			wndFrm = window.open('', 'OnlineBooking_' + this.GuidStruttura, wndPram);
			ImpostaLoad(wndFrm);
		}
		timer = setTimeout("LanciaForm()",2000)
		var url = this.BookUrl + '?GUID=' + this.GuidStruttura + '&LANG=' + this.CodLingua + '&DO=SEARCH';
		var frm = GetObj('frm');
		frm.target = wndFrm.name;
		frm.action = url;
	}
}

function ImpostaLoad(wnd)
{
	wnd.id = wnd.name;
	wnd.document.open();
	wnd.document.write('Loading...');
	wnd.document.close();
}

function RicercaOld()
{
	if(this.bolChkConfigurazione == false) { MostraErroreConfigurazione(); return; }
	if(GetObj('GUID').type == 'hidden') { this.GuidStruttura = GetObj('GUID').value; }
	else { this.GuidStruttura = GetObj('GUID')[GetObj('GUID').selectedIndex].value; }

	var DalDayObj = GetObj(DataArrivoGiorno);
	var DalMonthObj = GetObj(DataArrivoMese);
	var DalYearObj = GetObj(DataArrivoAnno);
	var AlDayObj = GetObj(DataPartenzaGiorno);
	var AlMonthObj = GetObj(DataPartenzaMese);
	var AlYearObj = GetObj(DataPartenzaAnno);	
	var PerObj = GetObj(Persone);
	var CamObj = GetObj(Camere);
	var TratObj = GetObj(Trattamenti);
	var CodeObj = GetObj(code);

	this.CheckDates();
	this.RecuperaCapienzaCamere(CamObj);

	var Cap = document.getElementById('CAP');
	
	var url = this.BookUrl + '?GUID=' + this.GuidStruttura;
	url += '&LANG=' + this.CodLingua;
	url += '&ddlArrivoAnno=' + DalYearObj.value;
    url += '&ddlArrivoMese=' + DalMonthObj.value;
    url += '&ddlArrivoGiorno=' + DalDayObj.value;
    url += '&ddlPartenzaAnno=' + AlYearObj.value;
    url += '&ddlPartenzaMese=' +  AlMonthObj.value;
    url += '&ddlPartenzaGiorno=' + AlDayObj.value;
    url += '&ddlPersone=' + ContaAdulti(Cap.value.replace('\|', ','));
	url += '&CAP=' + Cap.value;
	url += '&code=' + CodeObj.value;
    url += '&NB=' + ContaBambini(Cap.value.replace('\|', ','));
	if(TratObj != null)
	{
		url += '&IDT=' + TratObj.value;	
	}

	if(CamObj != null)
	{
		url += '&ddlCamere=' + CamObj.value;
	}
	url += '&CTRL=RIDI&STEP=2';

	try{
		pageTracker._link(url);
	}
	catch(e){
		location.href=url;
	}


}

function LanciaForm()
{
	if(this.bolChkConfigurazione == false) { MostraErroreConfigurazione(); return; }
	if(CalcNotti) { CheckDates(); }
	if(GAIntegration) 
	{ 
	    try { pageTracker._linkByPost(document.frm); }
	    catch(e) {}
	}
	document.frm.submit();
}
function GetObj(Id)
{
	return (document.getElementById) ? document.getElementById(Id) : eval('document.all.' + Id);
}
function ReimpostaCamere()
{
	if(this.bolChkConfigurazione == false) { MostraErroreConfigurazione(); return; }
	var PerObj = GetObj(Persone);
	var CamObj = GetObj(Camere);
	if(CamObj != null)
	{
		var NPers = PerObj[PerObj.selectedIndex].value;
		var OldCam = CamObj[CamObj.selectedIndex].value;
		for(var i = CamObj.options.length; i >= 0; i--) {CamObj.options[i] = null;}
		for(var i = 1; i <= NPers; i++)
		{
			var idx = CamObj.options.length;
			CamObj.options[idx] = new Option(i);
			CamObj.options[idx].value = i;
			if(i == OldCam) { CamObj.options[idx].selected = true; }
		}
	}
}
function SetDays(Tipo, GiornoSel, MeseSel, AnnoSel)
{
	if(this.bolChkConfigurazione == false) { MostraErroreConfigurazione(); return; }
	// Reimpostazione parametri
	Tipo = (Tipo == null) ? "" : Tipo;
	GiornoSel = (GiornoSel == null) ? "" : GiornoSel;
	MeseSel = (MeseSel == null) ? "" : MeseSel;
	AnnoSel = (AnnoSel == null) ? "" : AnnoSel;
	
	// Recupero oggetti select indistintamente
	var DalDayObj = GetObj(DataArrivoGiorno);
	var DalMonthObj = GetObj(DataArrivoMese);
	var DalYearObj = GetObj(DataArrivoAnno);
	var AlDayObj = GetObj(DataPartenzaGiorno);
	var AlMonthObj = GetObj(DataPartenzaMese);
	var AlYearObj = GetObj(DataPartenzaAnno);

	// Recupero oggetti select
	var DayObj = DalDayObj;
	var MonthObj = DalMonthObj;
	var YearObj = DalYearObj;
	if(!CalcNotti && Tipo == "1")
	{
		var DayObj = AlDayObj;
		var MonthObj = AlMonthObj;
		var YearObj = AlYearObj;
	}

	// Giorno, mese, anno della data di oggi
	var Today = new Date();
	var TodayDay = Today.getDate();
	var TodayMonth = Today.getMonth();
	var TodayYear = Today.getFullYear();

	var ChkDate = new Date(parseInt(AnnoSel), parseInt(MeseSel)-1, parseInt(GiornoSel));

	// Preparazione variabili
	var aryMonth = new Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
	var FebDays = 28
	var CheckYear = (AnnoSel == "") ? YearObj[YearObj.selectedIndex].value : AnnoSel;
	if(CheckYear/4 == Math.round(CheckYear/4)) {var FebDays = 29;}
	var aryTotDays = new Array(31, FebDays, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	var oldSelDay = "";
	if(DayObj.selectedIndex != -1) {oldSelDay = DayObj[DayObj.selectedIndex].value;}
	if(GiornoSel != "") { oldSelDay = GiornoSel; }
	
	if(AnnoSel != "")
	{
		for(var i = 0; i < YearObj.options.length; i++)
		{
			if(YearObj.options[i].value == AnnoSel)
			{
				YearObj.options[i].selected = true;
				AnnoSel = parseInt(YearObj.options[i].value);
				break;
			}
		}
	}
	else
	{
		AnnoSel = parseInt(YearObj[YearObj.selectedIndex].value);
	}
	// Reimpostazione giorni
	for(var i = DayObj.options.length; i >= 0; i--) {DayObj.options[i] = null;}
	for(var m = 0; m < aryMonth.length; m++)
	{
		if((parseInt(aryMonth[m]) == parseInt(MonthObj[MonthObj.selectedIndex].value) && MeseSel == "") ||
			(parseInt(aryMonth[m]) == parseInt(MeseSel))
		)
		{
			for(var d = 0; d < aryTotDays[m]; d++)
			{
				var g = new String(d+1);
				var chkD = new Date(AnnoSel, (aryMonth[m]-1), g);
				var ChkIn = false;
				if(Tipo == '1' && !this.bolSoloMultipli)
				{
					ChkIn = true;
				}
				else
				{
					for(var iChk = 0; iChk < aryGiorniChkIn.length; iChk++)
					{
						if(chkD.getDay() == parseInt(aryGiorniChkIn[iChk]))
						{
							ChkIn = true;
							break;
						}
					}
				}
				if(ChkIn)
				{
					var idxGiorno = DayObj.options.length;
					DayObj.options[idxGiorno] = new Option(((g.length < 2) ? "0" + g : g));
					DayObj.options[idxGiorno].value = g;
					if(oldSelDay != "" && parseInt(oldSelDay) == parseInt(DayObj.options[idxGiorno].value)) { DayObj.options[idxGiorno].selected = true; }
				}
			}
			if(this.bolSoloMultipli && (DayObj.selectedIndex == -1 || DayObj.options[idxGiorno].value < GiornoSel))
			{
				SetDays(Tipo, 1, parseInt(aryMonth[m])+1, AnnoSel);
				return;
			}
		}
	}
	if(DayObj.selectedIndex == -1) 
	{ 
		for(var idxDay = 0; idxDay < DayObj.options.length; idxDay++)
		{
			if(parseInt(DayObj.options[idxDay].value) >= TodayDay)
			{
				DayObj.options[idxDay].selected = true; 
				break;
			}
		}
		if(DayObj.selectedIndex == -1) {DayObj.options[0].selected = true;}
	}
	else
	{
		if(DayObj.options[DayObj.selectedIndex].value < TodayDay && Today > ChkDate && ((
		Tipo == '1' && MonthObj.selectedIndex == TodayMonth && MonthObj.options[MonthObj.selectedIndex].value == DalMonthObj.options[DalMonthObj.selectedIndex].value
		) || (
		Tipo != '1' && MonthObj.selectedIndex == TodayMonth && MonthObj.options[MonthObj.selectedIndex].value == AlMonthObj.options[AlMonthObj.selectedIndex].value
		)))
		{
			DayObj.selectedIndex = -1;
			for(var idxDay = 0; idxDay < DayObj.options.length; idxDay++)
			{
				if(parseInt(DayObj.options[idxDay].value) >= TodayDay)
				{
					DayObj.options[idxDay].selected = true; 
					break;
				}
			}
		}
	}
	if(MeseSel != "")
	{
		for(var i = 0; i < MonthObj.options.length; i++)
		{
			if(MonthObj.options[i].value == MeseSel)
			{
				MonthObj.options[i].selected = true;
				break;
			}
		}
	}
	if(Tipo != "1") { CheckDates(); }
	StampaStringaGiorno();
	//Custom.init();/*Furio: comando necessario per far funzionare calendario con custom form*/
}
function StampaStringaGiorno()
{
	if(this.bolChkConfigurazione == false) { MostraErroreConfigurazione(); return; }
	var dvGrnArr = GetObj(DivGiornoArrivo);
	var dvGrnPar = GetObj(DivGiornoPartenza);
	
	if(dvGrnArr != null && dvGrnPar)
	{
		var DalGiornoObj = GetObj(DataArrivoGiorno);
		var DalMeseObj = GetObj(DataArrivoMese);
		var DalAnnoObj = GetObj(DataArrivoAnno);
		var AlGiornoObj = GetObj(DataPartenzaGiorno);
		var AlMeseObj = GetObj(DataPartenzaMese);
		var AlAnnoObj = GetObj(DataPartenzaAnno);
		
		if(
			DalGiornoObj.selectedIndex != -1 &&
			DalMeseObj.selectedIndex != -1 &&
			DalAnnoObj.selectedIndex != -1
		)
		{
			var DalAnno = DalAnnoObj.options[DalAnnoObj.selectedIndex].value;
			var DalMese = DalMeseObj.selectedIndex;
			var DalGiorno = DalGiornoObj.options[DalGiornoObj.selectedIndex].value;
	
			var DataArrivo = new Date(parseInt(DalAnno), parseInt(DalMese), parseInt(DalGiorno));
	
			dvGrnArr.innerText = this.aryGiorniSel[DataArrivo.getDay()]; // + " " + this.aryMesi[parseInt(DalMese)];
		}

		if(
			!CalcNotti && 
			AlGiornoObj.selectedIndex != -1 &&
			AlMeseObj.selectedIndex != -1 &&
			AlAnnoObj.selectedIndex != -1
		)
		{
			var AlAnno = AlAnnoObj.options[AlAnnoObj.selectedIndex].value;
			var AlMese = AlMeseObj.selectedIndex;
			var AlGiorno = AlGiornoObj.options[AlGiornoObj.selectedIndex].value;
		
			var DataPartenza = new Date(parseInt(AlAnno), parseInt(AlMese), parseInt(AlGiorno));
			
			dvGrnPar.innerText = this.aryGiorniSel[DataPartenza.getDay()]; // + " " + this.aryMesi[parseInt(AlMese)];
		}
	}
}
function CheckDates()
{
	if(this.bolChkConfigurazione == false) { MostraErroreConfigurazione(); return; }
	// Recupero oggetti select
	var DalGiornoObj = GetObj(DataArrivoGiorno);
	var DalMeseObj = GetObj(DataArrivoMese);
	var DalAnnoObj = GetObj(DataArrivoAnno);
	var NNottiObj = GetObj(NNotti);
	var AlGiornoObj = GetObj(DataPartenzaGiorno);
	var AlMeseObj = GetObj(DataPartenzaMese);
	var AlAnnoObj = GetObj(DataPartenzaAnno);

	var DalAnno = DalAnnoObj.options[DalAnnoObj.selectedIndex].value;
	var DalMese = DalMeseObj.selectedIndex;
	var DalGiorno = DalGiornoObj.options[DalGiornoObj.selectedIndex].value;
	
	var DataArrivo = new Date(parseInt(DalAnno), parseInt(DalMese), parseInt(DalGiorno));

	if(!CalcNotti)
	{
		var AlAnno = AlAnnoObj.options[AlAnnoObj.selectedIndex].value;
		var AlMese = AlMeseObj.selectedIndex;
		var AlGiorno = AlGiornoObj.options[AlGiornoObj.selectedIndex].value;

		var DataPartenza = new Date(parseInt(AlAnno), parseInt(AlMese), parseInt(AlGiorno));

	}
	else
	{
		var NumNotti = NNottiObj.options[NNottiObj.selectedIndex].value;

		var DataPartenza = new Date(DataArrivo.getFullYear(), DataArrivo.getMonth(), parseInt(DataArrivo.getDate()) + parseInt(NumNotti));
		
		AlAnnoObj.value = DataPartenza.getFullYear();
		AlMeseObj.value = DataPartenza.getMonth() + 1;
		AlGiornoObj.value = DataPartenza.getDate();
	}
	var MilliSecDiff = DataPartenza.valueOf() - DataArrivo.valueOf();
	// Recuperato da una funzione datediff ricreata in javascript
	var NGiorni = parseInt(MilliSecDiff/1000/60/60/24)
	if(NGiorni < this.intMinStay)
	{
		if(!CalcNotti)
		{
			var NewData = DataArrivo;
			NewData.setDate(NewData.getDate() + this.intMinStay);
			SetDays("1", NewData.getDate(), NewData.getMonth() + 1, NewData.getFullYear());
		}
	}
	this.StampaStringaGiorno();
}
function ChkDatePrenotazione()
{
	if(this.bolChkConfigurazione == false) { MostraErroreConfigurazione(); return; }
	this.CheckDates();
	return true;
}

function ApriCalendario(e,Tipo)
{
	var icoCal = jQuery('#Calendario' + Tipo + ' img');

	DalGiornoObj = GetObj(DataArrivoGiorno);
	DalMeseObj = GetObj(DataArrivoMese);
	DalAnnoObj = GetObj(DataArrivoAnno);
	AlGiornoObj = GetObj(DataPartenzaGiorno);
	AlMeseObj = GetObj(DataPartenzaMese);
	AlAnnoObj = GetObj(DataPartenzaAnno);
	
	var url = '';
	url += 'calendar.php';
	url += '?GUID=' + this.GuidStruttura;
	url += '&LANG=' + this.CodLingua;
	if(!CalcNotti)
	{
		url += '&MESE=' + ((Tipo == '0') ? DalMeseObj[DalMeseObj.selectedIndex].value : AlMeseObj[AlMeseObj.selectedIndex].value);
		url += '&ANNO=' + ((Tipo == '0') ? DalAnnoObj[DalAnnoObj.selectedIndex].value : AlAnnoObj[AlAnnoObj.selectedIndex].value);
	}
	else
	{
		url += '&MESE=' + DalMeseObj[DalMeseObj.selectedIndex].value;
		url += '&ANNO=' + DalAnnoObj[DalAnnoObj.selectedIndex].value;
	}
	url += '&TIPO=' + Tipo;
	url += '&DAL_GIORNO=' + DalGiornoObj[DalGiornoObj.selectedIndex].value;
	url += '&DAL_MESE=' + DalMeseObj[DalMeseObj.selectedIndex].value;
	url += '&DAL_ANNO=' + DalAnnoObj[DalAnnoObj.selectedIndex].value;
	if(!CalcNotti)
	{
		url += '&AL_GIORNO=' + AlGiornoObj[AlGiornoObj.selectedIndex].value;
		url += '&AL_MESE=' + AlMeseObj[AlMeseObj.selectedIndex].value;
		url += '&AL_ANNO=' + AlAnnoObj[AlAnnoObj.selectedIndex].value;
	}
	else
	{
		url += '&AL_GIORNO=';
		url += '&AL_MESE=';
		url += '&AL_ANNO=';
	}

	jQuery('#SB_dvCalendar').remove();
	var dvCal = jQuery('<div id="SB_dvCalendar" style="position: absolute; top:' +  icoCal.offset().top + 'px; left: ' + (icoCal.offset().left + 18) + 'px;"></div>');
	jQuery('body').append(dvCal);
	dvCal.click(function(e) {
		e.stopPropagation();
	});
	jQuery('body').click(function() {
		jQuery('#SB_dvCalendar').hide();
	});
	
	CambiaMese(e, url);
	
	if(!e) e = window.event;
	e.cancelBubble = true;
	e.returnValue = false;
	if (e.stopPropagation) {
		e.stopPropagation();
		e.preventDefault();
	}
}
function CambiaMese(e, url) {
	var dvCal = jQuery('#SB_dvCalendar');
	var dvContent = jQuery('#SB_dvCalendarContent');
	var wid = 176;
	if(dvContent.length > 0) {
		var hei = dvContent.height();
		if(hei > 200) hei = 106; // Fix per IE
		jQuery('#SB_dvCalendarContent').replaceWith('<div id="dvCalLoading" style="width: ' + (wid - 20) + 'px; height: ' + (hei - 20) + 'px; border: solid 1px; padding: 10px; line-height: 100px; text-align: center;">loading...</div>');
	}
	else {
		dvCal.append(jQuery('<div id="dvCalLoading" style="width: ' + (wid - 20) + 'px; height: 106px; border: solid 1px; padding: 10px; line-height: 100px; text-align: center;">loading...</div>'));
	}
	dvContent = jQuery('<div id="SB_dvCalendarContent"></div>');
	dvContent.load(url + ' .CalPop_Table', function() {
		jQuery('#dvCalLoading').replaceWith(dvContent);

		var lnkPrev = jQuery("#lnkMesePrec");
		var lnkNext = jQuery("#lnkMeseSucc");
		
		var hrefPrev = lnkPrev.attr('href');
		lnkPrev.attr('href', 'javascript:void(0);');
		lnkPrev.click(function() { CambiaMese(event, hrefPrev); });

		var hrefNext = lnkNext.attr('href');
		lnkNext.attr('href', 'javascript:void(0);');
		lnkNext.click(function() { CambiaMese(event, hrefNext); });
	});
	
	if(!e) e = window.event;
	e.cancelBubble = true;
	e.returnValue = false;
	if (e.stopPropagation) {
		e.stopPropagation();
		e.preventDefault();
	}
}
function ChiudiCalendario() {
	jQuery('#SB_dvCalendar').hide();
}
function RitornaData(Tipo, Anno, Mese, Giorno)
{
	RecuperaDataDaCalendario(Tipo, Anno, Mese, Giorno);
	if(Tipo == '1') { CheckDates(); }
	StampaStringaGiorno();
	jQuery('#SB_dvCalendar').hide();
}


function recuperaHtml(source)
{
    var strIni = "<!--#JSIncludeStart-->";
    var strEnd = "<!--#JSIncludeEnd-->";

    var idxIni = source.indexOf(strIni) + strIni.length;
    var idxEnd = source.indexOf(strEnd) - 1;

    return source.substring(idxIni, idxEnd);
}

function RecuperaDataDaCalendario(Tipo, Anno, Mese, Giorno)
{
	if(this.bolChkConfigurazione == false) { MostraErroreConfigurazione(); return; }
	SetDays(Tipo, Giorno, Mese, Anno);
}

