function setRoomHome(nrooms, label_adults, label_children, label_children_age, label_room, element) {
	var form = element.parents('form');
	var myResults = '';
	
	if (nrooms > 1)	// se viene scelta più di una camera...
	{
		for (var i=2; i<=nrooms; i++)	// preparo la stringa da accodare alla prima camera, contenente i campi necessari
		{
			myResults = myResults + '<li class="room'+ i +' roomTitle">'+ label_room +' '+ i +'</li>';
			
			myResults = myResults +	'<li class="room'+ i +' adults">'+
										'<label>'+ label_adults +'</label>'+
										'<select name="bform[reqRooms]['+ i +'][adults]">'+
											createSelect(6, 1, label_adults, "", 2)+
										'</select>'+
									'</li>'+
									'<li class="room'+ i +' children">'+
										'<label>'+ label_children +'</label>'+
										'<select name="bform[reqRooms]['+ i +'][child]" onchange="setChildAge(this.value,\'chdAge_'+ i +'\', '+ i +',\''+ label_children_age +'\', $(this));">'+
											createSelect(4, 0, label_children, "", 0)+
										'</select>'+
									'</li>'+
									'<li class="room'+ i +' childAge chdAge_'+ i +'"></li>';
		}
		
		$('li.room1.roomTitle', form).remove();				// rimuovo il titolo della camera 1 (per evitare duplicazioni nel caso sia già presente: vedi istruzione successiva)
		$('li.room1:first', form).before('<li class="room1 roomTitle">'+ label_room +' 1</li>');		// aggiungo il titolo della camera 1, prima del primo campo della camera 1
		$('li.room1:last', form).nextAll().remove();		// rimuovo tutti gli elementi dopo l'ultimo elemento della camera 1
		$('li.room1:last', form).after(myResults);			// aggiungo dopo l'ultimo elemento della camera 1, la stringa preparata in precedenza
	}
	else			// se viene scelta una sola camera...
	{
		$('li.room1.roomTitle', form).remove();				// rimuovo il titolo della camera 1
		$('li.room1:last', form).nextAll().remove();		// rimuovo tutti gli elementi dopo l'ultimo elemento della camera 1
	}
}


function setChildAge(nchild, chdid, roomn, label_children_age, element){
	var form = element.parents('form');
	var selectHtml = "";
	
	if(nchild > 0){
		selectHtml = '<label>'+ label_children_age +'</label>';
		for (var cc=1; cc<=nchild; cc++) {
			selectHtml =  selectHtml + '<select name="bform[reqRooms]['+roomn+'][childAge][' + cc + ']">' +
                '<option value="0">&lsaquo;1</option>';
				for(var k=1; k<=18; k++){
					k_opt = k<10 ? "&nbsp;"+ k : k;
					selectHtml =  selectHtml + "\n" + '<option value="'+ k +'">'+ k_opt +'</option>';
				}
				selectHtml =  selectHtml + '</select>';
		}
	}

	if($('.'+chdid, form)){
		$('.'+chdid, form).html(selectHtml);
	}
}


function createSelect(num, init, label, labels, selected){
	if(label != ""){
		label = " "+ label;
	}
	if(labels != ""){
		labels = " "+ labels;
	} else {
		labels = label;
	}
	var mySel = "";
	for(var k=init; k<=num; k++){
		if(k!=init) label = labels;
		if (selected != 0 && selected == k){
			//mySel = mySel + "\n" + '<option value="'+ k +'" selected="selected">'+ k + label +'</option>';	// numero + nome
			mySel = mySel + "\n" + '<option value="'+ k +'" selected="selected">'+ k + '</option>';				// solo numero
		} else {
			//mySel = mySel + "\n" + '<option value="'+ k +'">'+ k + label +'</option>';	// numero + nome
			mySel = mySel + "\n" + '<option value="'+ k +'">'+ k + '</option>';				// solo numero
		}
	}
	return mySel;
}

function slideShow() {

    active = $('#slideshow').children(':first');
	
	active
		.remove()
		.insertAfter($('#slideshow').children(':last'))
		.animate({opacity: 1.0}, 1000, function() {
			$(this).siblings().css('opacity', 0);
		});
}

function strip_tags (input, allowed) {

   allowed = (((allowed || "") + "")
	  .toLowerCase()
	  .match(/<[a-z][a-z0-9]*>/g) || [])
	  .join(''); // making sure the allowed arg is a string containing only tags in lowercase (<a><b><c>)
   var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>/gi,
	   commentsAndPhpTags = /<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi;
   return input.replace(commentsAndPhpTags, '').replace(tags, function($0, $1){
	  return allowed.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : '';
   });
}

function ratingToString(rating) {
	var str = '';
	
	switch (rating)
	{
		case '1':	str = '*';			break;
		case '2':	str = '**';			break;
		case '3':	str = '***';		break;
		case '4':	str = '****';		break;
		case '5':	str = '****L';		break;
		case '6':	str = '*****';		break;
		case '7':	str = '*****L';		break;
		case '8':	str = '';			break;
		case '9':	str = '***S';		break;
		default:	str = '';			break;
	}
	
	return str;
}


function getPackagesfromStructure(stid, from, lang, cssId, order, limit, absUrl, fromText) {

	var params =	{	method: 'getPackagesfromStructure',
						params:	{	stid:	stid,
									pid:	1,
									from:	from,
									order:	order,
									limit:	limit,
									lang:	lang
								}
					};
	
	$.getJSON("http://"+absUrl+"/services/json.php?callback=?",
		params,
		function(data) {
			d = data.response;
			d_length = d.length;
			str = '';
			for (i=0; i<d_length; i++) {
				str += '<li';
				if (i == (d_length-1)) { str += ' class="last"'; }
				
				str += '><a href="'+d[i]['structure_url']+'"';
				
				if (d[i]['multirate_name'].length < 30) {
					multirate_name = d[i]['multirate_name'];
					title = '';
				} else {
					multirate_name = d[i]['multirate_name'].substring(0,30)+'&hellip;';
					title = ' title="'+d[i]['multirate_name']+'" ';
				}
				
				str += title+'>'+multirate_name+'&nbsp;';
				if (d[i]['multirate_price_from'] != '') {
					str += '<span>'+fromText+'&nbsp;<strong>€ '+d[i]['multirate_price_from']+'</strong></span>';
				} else {
					str += '<span>&nbsp;</span>';
				}
				
				str += '</a></li>';
			}
			$('#'+cssId+' ul').html(str);
		}
	);

}

function getSimulateBookingSearch(lang, order, limit, sorder, slimit, checkin, checkout, absUrl, fromText) {

	var reqRooms = [{adults:2, child:0}];
   	   		
   
	var params =	{	method: 'getSimulateBookingSearch',
						params:	{	pid:	1,
									limit:	limit,
									order:	order,
									slimit:	slimit,
									sorder:	sorder,
									lang:	lang,
									checkin:	checkin,
									checkout:	checkout,
									numrooms:	1,
									reqrooms:	reqRooms
								}
					};
	$.getJSON("http://"+absUrl+"/services/json.php?callback=?",
		params,
		function(data) {
			d = data.response;
			d_length = d.length;
			str = '';
			
			for (i=0; i<d_length; i++) {	// stampo le strutture
				str += '<li>';
				str += '<span class="thumb" style="background-image: url(/resizer/resize.php?url='+d[i]['structure_photo']+'&size=125x95c50)"></span>';
				str += '<p><a href="'+d[i]['structure_url']+'">'+d[i]['structure_name']+'<span class="rating_'+d[i]['rating_id']+'">'+ratingToString(d[i]['rating_id'])+'</span></a>';
				str += strip_tags(d[i]['structure_description']).substring(0,70)+'&hellip;</p>';
				
				s = d[i]['solutions'];
				s_length = s.length;
				
				str += '<ul>';
				for (j=0; j<s_length; j++) {	// per ogni struttura stampo le camere
					str += '<li';
					if (j == (s_length-1)) { str += ' class="last"'; }
					
					str += '><a href="'+s[j]['url']+'"';
					
					if (s[j]['name'].length < 28) {
						name = s[j]['name'];
						title = '';
					} else {
						name = s[j]['name'].substring(0,28)+'&hellip;';
						title = ' title="'+s[j]['name']+'" ';
					}
					
					str += title+'>'+s[j]['board']+' - '+name+'&nbsp;';
					if (s[j]['price'] != '') {
						str += '<span>'+fromText+'&nbsp;<strong>€ '+s[j]['price']+'</strong></span>';
					} else {
						str += '<span>&nbsp;</span>';
					}
					
					str += '</a></li>';
				}
				str += '</ul>';
				str += '<div class="clear"></div>';
				str += '</li>';
			}
			str += '</ul>';
			
			$('#visible_tab').html(str).hide().fadeIn(500);
		}
	);
}

function utf8_decode ( str_data ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Webtoolkit.info (http://www.webtoolkit.info/)
    // +      input by: Aman Gupta
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Norman "zEh" Fuchs
    // +   bugfixed by: hitwork
    // +   bugfixed by: Onno Marsman
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: utf8_decode('Kevin van Zonneveld');
    // *     returns 1: 'Kevin van Zonneveld'

    var tmp_arr = [], i = 0, ac = 0, c1 = 0, c2 = 0, c3 = 0;
    
    str_data += '';
    
    while ( i < str_data.length ) {
        c1 = str_data.charCodeAt(i);
        if (c1 < 128) {
            tmp_arr[ac++] = String.fromCharCode(c1);
            i++;
        } else if ((c1 > 191) && (c1 < 224)) {
            c2 = str_data.charCodeAt(i+1);
            tmp_arr[ac++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));
            i += 2;
        } else {
            c2 = str_data.charCodeAt(i+1);
            c3 = str_data.charCodeAt(i+2);
            tmp_arr[ac++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
            i += 3;
        }
    }

    return tmp_arr.join('');
}

function base64_decode (data) {
    // http://kevin.vanzonneveld.net
    // +   original by: Tyler Akins (http://rumkin.com)
    // +   improved by: Thunder.m
    // +      input by: Aman Gupta
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Onno Marsman
    // +   bugfixed by: Pellentesque Malesuada
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // -    depends on: utf8_decode
    // *     example 1: base64_decode('S2V2aW4gdmFuIFpvbm5ldmVsZA==');
    // *     returns 1: 'Kevin van Zonneveld'

    // mozilla has this native
    // - but breaks in 2.0.0.12!
    //if (typeof this.window['btoa'] == 'function') {
    //    return btoa(data);
    //}

    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, dec = "", tmp_arr = [];

    if (!data) {
        return data;
    }

    data += '';

    do {  // unpack four hexets into three octets using index points in b64
        h1 = b64.indexOf(data.charAt(i++));
        h2 = b64.indexOf(data.charAt(i++));
        h3 = b64.indexOf(data.charAt(i++));
        h4 = b64.indexOf(data.charAt(i++));

        bits = h1<<18 | h2<<12 | h3<<6 | h4;

        o1 = bits>>16 & 0xff;
        o2 = bits>>8 & 0xff;
        o3 = bits & 0xff;

        if (h3 == 64) {
            tmp_arr[ac++] = String.fromCharCode(o1);
        } else if (h4 == 64) {
            tmp_arr[ac++] = String.fromCharCode(o1, o2);
        } else {
            tmp_arr[ac++] = String.fromCharCode(o1, o2, o3);
        }
    } while (i < data.length);

    dec = tmp_arr.join('');
    dec = this.utf8_decode(dec);

    return dec;
}

function goToUrl(url) {
	location.href='http://www.abanomontegrottosi.it'+base64_decode(url);
}

jQuery.fn.supersleight = function(settings) {
	settings = jQuery.extend({
		imgs: true,
		backgrounds: true,
		shim: '/images/blank.gif',
		apply_positioning: true
	}, settings);
	
	return this.each(function(){
		if (jQuery.browser.msie && parseInt(jQuery.browser.version, 10) < 7 && parseInt(jQuery.browser.version, 10) > 4) {
			jQuery(this).find('*').andSelf().each(function(i,obj) {
				var self = jQuery(obj);
				// background pngs
				if (settings.backgrounds && self.css('background-image').match(/\.png/i) !== null) {
					var bg = self.css('background-image');
					var src = bg.substring(5,bg.length-2);
					var mode = (self.css('background-repeat') == 'no-repeat' ? 'crop' : 'scale');
					var styles = {
						'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='" + mode + "')",
						'background-image': 'url('+settings.shim+')'
					};
					self.css(styles);
				};
				// image elements
				if (settings.imgs && self.is('img[src$=png]')){
					var styles = {
						'width': self.width() + 'px',
						'height': self.height() + 'px',
						'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + self.attr('src') + "', sizingMethod='scale')"
					};
					self.css(styles).attr('src', settings.shim);
				};
				// apply position to 'active' elements
				if (settings.apply_positioning && self.is('a, input') && (self.css('position') === '' || self.css('position') == 'static')){
					self.css('position', 'relative');
				};
			});
		};
	});
};

$(document).ready(function(){
				
	if ($('#slideshow img').length > 1)
	{
		$('#slideshow div').css('opacity', 0);
		
		// aggiungo uno span per simulare la text-shadow solo in IE
		if(!jQuery.support.opacity) {
			txt = $('#slideshow div p a:first').text();
			$('#slideshow p').append('<strong>'+txt+'</strong>');
		}
		
		slideShow();
		setInterval( "slideShow()", 5000 );
	}
	
	//=============================== SHADOWBOX
	
	$('.shadowbox').each(function(){
		params = $(this).attr('class').split('_');

		gallery	= (typeof(params[1]) !== 'undefined' && params[1] != '')? '['+params[1]+'];' : ';';
		width	= (typeof(params[2]) !== 'undefined')? 'width='+params[2]+';' : '';
		height	= (typeof(params[3]) !== 'undefined')? 'height='+params[3]+';' : '';
		
		
		$(this).attr('rel', 'shadowbox'+gallery+width+height);
	});
	
	//======================================	CALENDARIO EVENTI
	
	$("a.tenback").live('click',function(){
		var newtime = $(this).attr("id").replace('tenback-','');
		$.ajax({
			type: "GET",
			url: "/assets/eventList.php",
			data: "newtime="+newtime,
			success: function(myList){
				$("#eventCalendar").html(myList);
			}
		});
	});
	
	$("a.tenforward").live('click',function(){				
		var newtime = $(this).attr("id").replace('tenforward-','');
		$.ajax({
			type: "GET",
			url: "/assets/eventList.php",
			data: "newtime="+newtime,
			success: function(myList){
				$("#eventCalendar").html(myList);
			}
		});
	});
	
	$("a.eventInDay").live('click',function(){
		var day = $(this).attr("id").replace('forday-','');
		$(this).parent().siblings().children('a').removeClass('selected');
		$(this).addClass('selected');
		$.ajax({
			type: "GET",
			url: "/assets/eventInDay.php",
			data: "day="+day,
			success: function(myList){
				$("#news").replaceWith(myList);
			}
		});
	});
	
	//======================================	TABS BEST OFFERS
	
	$('#tabs a').click(function(){
		html1 = $('#visible_tab').html();
		html2 = $('#hidden_tab').html();
		$('#visible_tab').html(html2);
		$('#hidden_tab').html(html1);
		$(this).parent('li').siblings('li').removeClass('active');
		$(this).parent('li').addClass('active');
		if ($('#tabs-1').hasClass('active')) {
			$('#tabs').addClass('colored');
		} else {
			$('#tabs').removeClass('colored');
		}
	});
	
	//=============================== SCROLL PRODOTTI HOME E OFFERTE
	
	if ($('#scroll > ul > li').length > 3) {
		$('#scroll > ul > li:last').remove().prependTo('#scroll > ul');
		$('#scroll > ul').css('left','-186px');
	}
	
	gallery = $('#scroll > ul');
	offset = gallery.children('li').outerWidth(true);
	elemWidth = gallery.children('li').width();
	
	$('#next').click(function(){
		if (!gallery.is(':animated')) {
			gallery.stop(true).animate({'margin-left':'-'+offset}, 600, function(){
				gallery.children('li:first').remove().appendTo(gallery);
				gallery.css('margin-left','0px');
			});
		}
	});
	
	$('#prev').click(function(){
		if (!gallery.children('li:first').is(':animated')) {
			gallery.children('li:last').css({'width':'0px', 'padding':'0px', 'margin':'0px', 'overflow':'hidden'}).remove().prependTo(gallery);
			gallery.children('li:first').stop(true).animate({width:elemWidth, 'marginRight':'22px'}, 600);
		}
	});

	
	//======================================	 tooltip per il dettaglio Hotel
	
	 var hideDelay = 300;
	 var hideTimerHotel = null;
	 var containerHotel = $('<div class="hotel_details"></div>');
	
	 $('body').append(containerHotel);
	
	 $('.hotel_name').live('mouseover', function(){
		 link = $(this).attr('rel');
	
		 if (hideTimerHotel)
			 clearTimeout(hideTimerHotel);
	
		 var pos = $(this).offset();
		 var width = $(this).width();
	
		 containerHotel.css({
			 left: (pos.left + width - 100) + 'px',
			 top: pos.top - 40 +'px',
			 width: 328
		 });
	
		 $.ajax({
			 type: 'GET',
			 url: link,
			 success: function(data){
				 var text = $(data).html();
				 $('.hotel_details').html(text);
				 //$('.hotel_details').bgiframe();
			 }
		 });
	
		 containerHotel.fadeIn("slow");;
	 });
	
	 $('.hotel_name').live('mouseout', function(){
		 if (hideTimerHotel)
			 clearTimeout(hideTimerHotel);
			 hideTimerHotel = setTimeout(function(){
			 containerHotel.css('display', 'none');
		 }, hideDelay);
	 });
	
	 $('.hotel_details').mouseover(function(){
		 if (hideTimerHotel)
			 clearTimeout(hideTimerHotel);
	 });
	
	 $('.hotel_details').mouseout(function(){
		 if (hideTimerHotel)
			 clearTimeout(hideTimerHotel);
			 hideTimerHotel = setTimeout(function(){
			 containerHotel.css('display', 'none');
		 }, hideDelay);
	 });
	 
	$('.offer_description').toggle(
		function(){  // funzione per il dettaglio dell'offerta
			var short_description = $(this).parent('.short_description');
			var long_description = $(this).parent().siblings('.long_description'); 	
			short_description.fadeOut();
			long_description.fadeIn('slow');
		},
		function(){  // funzione per il dettaglio dell'offerta
			var short_description = $(this).parent().siblings('.short_description');
			var long_description = $(this).parent('.long_description'); 	
			long_description.fadeOut();
			short_description.fadeIn('slow');
		}
	);
	
	//=============================== AGGIUNTA LINK MENU INFORMAZIONI UTILI
	
	$('.ita #left .box > ul').append('<li><a href="http://www.abanospa.com/" target="_blank">Thermal5Colours</a></li>');
	$('.eng #left .box > ul').append('<li><a href="http://www.abanospa.com/eng/" target="_blank">Thermal5Colours</a></li>');
	$('.deu #left .box > ul').append('<li><a href="http://www.abanospa.com/deu/" target="_blank">Thermal5Colours</a></li>');
	$('.fra #left .box > ul').append('<li><a href="http://www.abanospa.com/fra/" target="_blank">Thermal5Colours</a></li>');
	
});
