var resetBox = {
	options:{
		myBlock: "boxSearch",
		myHeight: 0,
		myLiHeight: 0,
		myPadding: 0,
		myAction: ""
	},
	init: function(opts) {
		for (name in opts) resetBox.options[name] = opts[name];
		if(document.getElementById(resetBox.options.myBlock))document.getElementById(resetBox.options.myBlock).style.overflow = "hidden";
	},
	set: function(myValue){
		if(document.getElementById(resetBox.options.myBlock)){
			myPassValue = parseInt(myValue);
			if(myPassValue > 1){
				resetBox.openBox(myPassValue, document.getElementById(resetBox.options.myBlock).offsetHeight-resetBox.options.myPadding, (resetBox.options.myHeight-resetBox.options.myPadding + (resetBox.options.myLiHeight*(myValue*1-1))));
			} else {
				resetBox.openBox(myPassValue, document.getElementById(resetBox.options.myBlock).offsetHeight-resetBox.options.myPadding, resetBox.options.myHeight-resetBox.options.myPadding);
			}
		} else {
			alert("Attenzione: "+ resetBox.options.myBlock +" non esiste.");
		}
		return false;
	},
	openBox: function(myVal, height_nowB, heightB){
		myValuePass = parseInt(myVal);
		if(heightB > height_nowB){
			new_heightB = Math.round((heightB-height_nowB)/6)*1+1;
			if(resetBox.options.myAction == ""){
				setRoom(myValuePass, name_adults, name_children, name_childage, name_room, name_rooms);
				resetBox.options.myAction = "opening";
			}
		} else {
			new_heightB = Math.round((heightB-height_nowB)/6)*1-1;
			resetBox.options.myAction = "closing";
		}
		my_heightB = heightB;
		my_height_resultB = height_nowB + new_heightB;
		if ((heightB-height_nowB) > 3 || (heightB-height_nowB) < -3){
			setTimeout("resetBox.openBox(myValuePass, my_height_resultB, my_heightB)", 20);
			document.getElementById(resetBox.options.myBlock).style.height = my_height_resultB +"px";
		} else {
			document.getElementById(resetBox.options.myBlock).style.height = "auto";
			if(resetBox.options.myAction == "closing") setRoom(myValuePass, name_adults, name_children, name_childage, name_room, name_rooms);
			resetBox.options.myAction = "";
			return false;
		}
		return true;
	}
}

function setChildAge(nchild, chdid, roomn, label_children_age){
	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 + ']" class="select_small">' +
                '<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(document.getElementById(chdid)){
		document.getElementById(chdid).innerHTML = 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>';
		} else {
			mySel = mySel + "\n" + '<option value="'+ k +'">'+ k + label +'</option>';
		}
	}
	return mySel;
}

function setRoom(nrooms, label_adults, label_children, label_children_age, label_room){
	var myResults = "";
	myResults = myResults + '<ul id="boxRooms">\n';
	for (var i=1; i<=nrooms; i++){
		if ( nrooms > 1){
			myResults = myResults + '	<li class="bigList">\n';
		} else {
			myResults = myResults + '	<li>\n';
		}
		myResults = myResults +
		'		<span>\n'+
		'			<label>'+ label_adults +'</label>\n'+
		'			<select name="bform[reqRooms]['+ i +'][adults]">\n'+
		'			'+ createSelect(6, 1, "", "", 2) + 
		'			</select>\n'+
		'		</span>\n'+
		'		<span>\n'+
		'			<label>'+ label_children +'</label>\n'+
		'			<select name="bform[reqRooms]['+ i +'][child]" onchange="setChildAge(this.value,\'chdAge_'+ i +'\', '+ i +',\''+ label_children_age +'\');">\n'+
		'			'+ createSelect(4, 0, "", "", 0) + 
		'			</select>\n'+
		'		</span>\n'+
		'		<span class="childAge" id="chdAge_'+ i +'"></span>\n'+
		'	</li>\n';
	}
	myResults = myResults + '</ul>\n';
	if (document.getElementById('contOption')){
		document.getElementById('contOption').innerHTML = myResults;
	} else {
		alert("blocco non valido");
	}
}

var boxBlock = {
	options:{
		myCont: "",
		myBlock: ""
	},
	init: function(opts) {
		for (name in opts) boxBlock.options[name] = opts[name];
		var block = document.getElementById(boxBlock.options.myCont);
		if(block){
			var blockBK = block.getElementsByTagName("div");
			for (var i=0; i < blockBK.length; i++){
				if (blockBK[i].className == boxBlock.options.myBlock){
					var mySpan = blockBK[i].getElementsByTagName("span");
					var myImage = blockBK[i].getElementsByTagName("img");
					if(myImage.length == 1){
						var mySearch = myImage[0].getAttribute("src");
						var myAlt = myImage[0].getAttribute("alt");
						mySpan[0].style.background = "url("+ mySearch +") no-repeat center center";
						if(progidIe7()){
							mySpan[0].innerHTML = '<img src="/images/blank.gif" style="filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'/images/boxBlock.png\', sizingMethod=\'image\')" alt="'+ myAlt +'" border="0" />';
						} else {
							mySpan[0].innerHTML = '<img src="/images/boxBlock.png" alt="'+ myAlt +'" border="0" />';
	}}}}}}
}

var galleryOne = {
	options:{
		myBlock: "galOne",
		myTag: "li"
	},
	init: function(opts) {
		for (name in opts) galleryOne.options[name] = opts[name];
		var blockBK = document.getElementsByTagName(galleryOne.options.myTag);
		for (var i=0; i < blockBK.length; i++){
			if(blockBK[i].className == galleryOne.options.myBlock){
				var myAnchor = blockBK[i].getElementsByTagName("a");
				if (myAnchor.length == 0) myAnchor = blockBK[i].getElementsByTagName("small");
				var myImage = blockBK[i].getElementsByTagName("img");
				if(myImage.length == 1){
					var mySearch = myImage[0].getAttribute("src");
					var myAlt = myImage[0].getAttribute("alt");
					myAnchor[0].style.background = "url("+ mySearch +") no-repeat left center";
					myAnchor[0].innerHTML = '<img src="/images/boxGalleryone.gif" alt="'+ myAlt +'" border="0" />';
	}}}}
}

function setPoint(mapId, optiones, zoom, mapType, showCursor) {
	var myMarker = new Array();
	myMarker['iconsize'] = "30,30";
	myMarker['iconhancor'] = "0,15";
	myMarker['infowindow'] = "";
	
	for (names in optiones) myMarker[names] = optiones[names];
	var latlng = new google.maps.LatLng(myMarker['lat'], myMarker['lon']);
	if(mapType == undefined) mapType = "ROADMAP"; //ROADMAP - SATELLITE - HYBRID - TERRAIN 
	if(showCursor == undefined) showCursor = false;
    var myOptions = {
		disableDefaultUI: showCursor,
		zoom: zoom,
		center: latlng,
		mapTypeId: google.maps.MapTypeId[mapType]
    };
    var maps = new google.maps.Map(document.getElementById(mapId), myOptions);
	
	var myLatLng = new google.maps.LatLng(myMarker['lat'], myMarker['lon']);

	var marker = new google.maps.Marker({
		position: myLatLng,
		map: maps,
		icon: myMarker['icon'],
        zIndex: 10000
	});

	if(myMarker['infowindow'] != ""){
		var infowindow = new google.maps.InfoWindow({
			content: myMarker['infowindow'],
			maxWidth: 350,
			position: myLatLng,
			zIndex: 100
		});
		infowindow.open(maps, infowindow);
		google.maps.event.addListener(marker, "click", function() {
			infowindow.open(maps, infowindow);
		});
	}
}

function moveto(my_photo, my_container){
	var photoHeight = 98;
	var mio_blocco = document.getElementById(my_container);
	if (mio_blocco){
		mio_blocco.style.position = "relative";
		var myContPhoto = my_container +"_move";
		var myDivMove = document.getElementById(myContPhoto);
		if(myDivMove){
			myDivMove.style.top = -((my_photo*1)-1)*photoHeight+"px";
		} else {
			mio_blocco.innerHTML = '<div id="'+ my_container +'_move">'+ mio_blocco.innerHTML +'</div>';
			var myDivMove = document.getElementById(my_container+"_move");
			myDivMove.style.position = "absolute";
			myDivMove.style.top = -((my_photo*1)-1)*photoHeight+"px";
		}
	} else {
		alert("Elemento " + my_container + " inesistente.");
	}
}

function IE6(){
	var ievs = (/MSIE (\d+\.\d+);/.test(navigator.userAgent));
	if (ievs){
		var iev = new Number(RegExp.$1);
		if (iev < 7) return true;
	}
	return false;
}

// Funzione per creare testo in javascript
var jbase64 = {
 _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
 encode : function (input) {
  var output = "";
  var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
  var i = 0;
  input = jbase64._utf8_encode(input);
  while (i < input.length) {
   chr1 = input.charCodeAt(i++);
   chr2 = input.charCodeAt(i++);
   chr3 = input.charCodeAt(i++);
   enc1 = chr1 >> 2;
   enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
   enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
   enc4 = chr3 & 63;
   if (isNaN(chr2)) {
    enc3 = enc4 = 64;
   } else if (isNaN(chr3)) {
    enc4 = 64;
   }
   output = output +
   this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
   this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
  }
  return output;
 },
 decode : function (input) {
  var output = "";
  var chr1, chr2, chr3;
  var enc1, enc2, enc3, enc4;
  var i = 0;
  input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
  while (i < input.length) {
   enc1 = this._keyStr.indexOf(input.charAt(i++));
   enc2 = this._keyStr.indexOf(input.charAt(i++));
   enc3 = this._keyStr.indexOf(input.charAt(i++));
   enc4 = this._keyStr.indexOf(input.charAt(i++));
   chr1 = (enc1 << 2) | (enc2 >> 4);
   chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
   chr3 = ((enc3 & 3) << 6) | enc4;
   output = output + String.fromCharCode(chr1);
   if (enc3 != 64) {
    output = output + String.fromCharCode(chr2);
   }
   if (enc4 != 64) {
    output = output + String.fromCharCode(chr3);
   }
  }
  output = jbase64._utf8_decode(output);
  return output;
 },
 _utf8_encode : function (string) {
  string = string.replace(/\r\n/g,"\n");
  var utftext = "";
  for (var n = 0; n < string.length; n++) {
   var c = string.charCodeAt(n);
   if (c < 128) utftext += String.fromCharCode(c);
   else if((c > 127) && (c < 2048)) {
    utftext += String.fromCharCode((c >> 6) | 192);
    utftext += String.fromCharCode((c & 63) | 128);
   } else {
    utftext += String.fromCharCode((c >> 12) | 224);
    utftext += String.fromCharCode(((c >> 6) & 63) | 128);
    utftext += String.fromCharCode((c & 63) | 128);
   }
  }
  return utftext;
 },
 _utf8_decode : function (utftext) {
  var string = "";
  var i = 0;
  var c = c1 = c2 = 0;
  while ( i < utftext.length ) {
   c = utftext.charCodeAt(i);
   if (c < 128) {
    string += String.fromCharCode(c);
    i++;
   } else if((c > 191) && (c < 224)) {
    c2 = utftext.charCodeAt(i+1);
    string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
    i += 2;
   } else {
    c2 = utftext.charCodeAt(i+1);
    c3 = utftext.charCodeAt(i+2);
    string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
    i += 3;
   }
  }
  return string;
 }
}
