// -------------- FUNZIONI AUSILIARIE -------------- 

function getById(arg) {
	return document.getElementById(arg);
}

function goSelectedURL(arg) {
	document.location = arg.options[arg.selectedIndex].value;
}

function mostraRighe(tabella_id, class_on, class_off) {
	var righe = getByClassName(getById(tabella_id), "tr", class_off);
	for(var i = 0; i < righe.length; i++) {
		righe[i].onmouseover = function() { this.className = class_on; }
		righe[i].onmouseout = function() { this.className = class_off; }
	}
}

String.prototype.trim = function() {
	return this.replace(/^\s+/, '').replace(/\s+$/, '');
};

String.prototype.escape_html = function() {
	return this.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
};

var unicodeC = new Array("&#34;", "&#39;", "&#38;", "&#60;", "&#62;", "&#160;", "&#161;", "&#164;", "&#162;", "&#163;", "&#165;", "&#166;", "&#167;", "&#168;", "&#169;", "&#170;", "&#171;", "&#172;", "&#173;", "&#174;", "&#8482;", "&#175;", "&#176;", "&#177;", "&#178;", "&#179;", "&#180;", "&#181;", "&#182;", "&#183;", "&#184;", "&#185;", "&#186;", "&#187;", "&#188;", "&#189;", "&#190;", "&#191;", "&#215;", "&#247;", "&#192;", "&#193;", "&#194;", "&#195;", "&#196;", "&#197;", "&#198;", "&#199;", "&#200;", "&#201;", "&#202;", "&#203;", "&#204;", "&#205;", "&#206;", "&#207;", "&#208;", "&#209;", "&#210;", "&#211;", "&#212;", "&#213;", "&#214;", "&#216;", "&#217;", "&#218;", "&#219;", "&#220;", "&#221;", "&#222;", "&#223;", "&#224;", "&#225;", "&#226;", "&#227;", "&#228;", "&#229;", "&#230;", "&#231;", "&#232;", "&#233;", "&#234;", "&#235;", "&#236;", "&#237;", "&#238;", "&#239;", "&#240;", "&#241;", "&#242;", "&#243;", "&#244;", "&#245;", "&#246;", "&#248;", "&#249;", "&#250;", "&#251;", "&#252;", "&#253;", "&#254;", "&#255;", "&#732;", "&#8230;", "&#8240;", "&#8249;", "&#8250;", "&#8364;");
var htmlC = new Array("&quot;", "&apos;", "&amp;", "&lt;", "&gt;", "&nbsp;", "&iexcl;", "&curren;", "&cent;", "&pound;", "&yen;", "&brvbar;", "&sect;", "&uml;", "&copy;", "&ordf;", "&laquo;", "&not;", "&shy;", "&reg;", "&trade;", "&macr;", "&deg;", "&plusmn;", "&sup2;", "&sup3;", "&acute;", "&micro;", "&para;", "&middot;", "&cedil;", "&sup1;", "&ordm;", "&raquo;", "&frac14;", "&frac12;", "&frac34;", "&iquest;", "&times;", "&divide;", "&Agrave;", "&Aacute;", "&Acirc;", "&Atilde;", "&Auml;", "&Aring;", "&AElig;", "&Ccedil;", "&Egrave;", "&Eacute;", "&Ecirc;", "&Euml;", "&Igrave;", "&Iacute;", "&Icirc;", "&Iuml;", "&ETH;", "&Ntilde;", "&Ograve;", "&Oacute;", "&Ocirc;", "&Otilde;", "&Ouml;", "&Oslash;", "&Ugrave;", "&Uacute;", "&Ucirc;", "&Uuml;", "&Yacute;", "&THORN;", "&szlig;", "&agrave;", "&aacute;", "&acirc;", "&atilde;", "&auml;", "&aring;", "&aelig;", "&ccedil;", "&egrave;", "&eacute;", "&ecirc;", "&euml;", "&igrave;", "&iacute;", "&icirc;", "&iuml;", "&eth;", "&ntilde;", "&ograve;", "&oacute;", "&ocirc;", "&otilde;", "&ouml;", "&oslash;", "&ugrave;", "&uacute;", "&ucirc;", "&uuml;", "&yacute;", "&thorn;", "&yuml;", "&tilde;", "&hellip;", "&permil;", "&lsaquo;", "&rsaquo;", "&euro;");
var charC = new Array("\"", "'", "&", "<", ">", "non-breaking space", "¡", "¤", "¢", "£", "¥", "¦", "§", "¨", "©", "ª", "«", "¬", "­soft hyphen", "®", "™", "¯", "°", "±", "²", "³", "´", "µ", "¶", "·", "¸", "¹", "º", "»", "¼", "½", "¾", "¿", "×", "÷", "À", "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î", "Ï", "Ð", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "Ø", "Ù", "Ú", "Û", "Ü", "Ý", "Þ", "ß", "à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï", "ð", "ñ", "ò", "ó", "ô", "õ", "ö", "ø", "ù", "ú", "û", "ü", "ý", "þ", "ÿ", "˜", "…", "‰", "‹", "›", "€");

function htmlEncode(arg) {
	var sString = arg;
	for (i = 0; i < charC.length; i++) {
		sString = sString.replace(eval("/" + charC[i] + "/g"), htmlC[i]);
	}
	return(sString);
}

function addZero(arg) {
	if(arg < 10)
		return '0' + arg;
	else
		return arg.toString();
}

function delZero(arg) {
	var tmp = arg;
	while(tmp.charAt(0) == '0')
		tmp = tmp.substring(1, tmp.length);
	if(tmp.length == 0) tmp = '0';
	return tmp;
}

function encodeDate(arg) {
	return(arg.getFullYear() + addZero(arg.getMonth()) + addZero(arg.getDate()));
}

function decodeDate(arg) {
	var temp = new Date();
	if(/([0-9]{4})([0-9]{2})([0-9]{2})/.test(arg)) {
		var giorno = delZero(RegExp.$3);
		var mese = delZero(RegExp.$2);
		var anno = RegExp.$1;
		temp.setFullYear(parseInt(anno), parseInt(mese), parseInt(giorno));
		return(temp);
	}
	else return(null);
}

function mMonth(arg) {
	var temp = new Date();
	var mese = arg.getMonth();
	var anno = arg.getFullYear();
	mese--;
	if(mese == -1) {
		mese = 11;
		anno--;
	}
	temp.setFullYear(anno, mese, arg.getDate());
	return(temp)
}

function pMonth(arg) {
	var temp = new Date();
	var mese = arg.getMonth();
	var anno = arg.getFullYear();
	mese++;
	if(mese == 12) {
		mese = 0;
		anno++;
	}
	temp.setFullYear(anno, mese, arg.getDate());
	return(temp)
}

var giorni = new Array("domenica", "lunedì", "martedì", "mercoledì", "giovedì", "venerdì", "sabato");
var mesi = new Array("gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre");

function show_hide() {
	for (var i = 0; i < arguments.length; i++) {
		if(i == 0)
			getById(arguments[i]).style.display = "block";
		else
			getById(arguments[i]).style.display = "none";
	}
}

function setCSSAttribute(arg, vv) {
	if(document.all)
		arg.style.cssText = vv;
	else
		arg.setAttribute("style", vv);
}

function getAbsoluteOffsetTop(obj) {
	var top = obj.offsetTop;
	var parent = obj.offsetParent;
	while (parent != document.body) {
		top += parent.offsetTop;
		parent = parent.offsetParent;
	}
	return top;
}

function getAbsoluteOffsetLeft(obj) {
	var left = obj.offsetLeft;
	var parent = obj.offsetParent;
	while (parent != document.body) {
		left += parent.offsetLeft;
		parent = parent.offsetParent;
	}
	return left;
}

function isArray(obj) {
	if($.browser.safari) { 
		if (obj instanceof Array)
			return true;
		else
			return false;
	}
	else {
		if (obj.constructor.toString().indexOf("Array()") > -1)
			return true;
		else
			return false;
	}
}

function makeArray(arg) {
	if(isArray(arg))
		return arg;
	else {
		temp = new Array();
		temp.push(arg);
		return temp;
	}
}

function getURLParam(strParamName) {
	var strReturn = "";
	var strHref = window.location.href;
	if(strHref.indexOf("?") > -1){
		var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
		var aQueryString = strQueryString.split("&");
		for (var iParam = 0; iParam < aQueryString.length; iParam++){
			if(aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ){
				var aParam = aQueryString[iParam].split("=");
				strReturn = aParam[1];
				break;
			}
		}
	}
	return unescape(strReturn);
}

function generaPassw(len) {
	var chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ0123456789*';
	var passw = '';
	for(var i = 1; i <= len; i++) {
		var rand = Math.floor(Math.random() * chars.length);
		passw += chars.substr(rand, 1);
	}
	return passw.toLowerCase();
}

function formatDate(tdata, tformat) {
	var out = tformat;
	if(out.match(/h/g)) {
		if(parseInt(tdata.substr(11,2)) / 12 > 0)
			out += ' PM';
		else
			out += ' AM';
	}
	out = out.replace(/yyyy/g, tdata.substr(0,4));
	out = out.replace(/MM/g, page_loc_strings.arr_months[parseInt(removeZero(tdata.substr(5,2))) - 1]);
	out = out.replace(/M3/g, page_loc_strings.arr_months[parseInt(removeZero(tdata.substr(5,2))) - 1].substr(0, 3));
	out = out.replace(/mm/g, tdata.substr(5,2));
	out = out.replace(/dd/g, tdata.substr(8,2));
	out = out.replace(/d/g, removeZero(tdata.substr(8,2)));
	out = out.replace(/hh/g, addZero(parseInt(removeZero(tdata.substr(11,2))) % 12));
	out = out.replace(/h/g, parseInt(removeZero(tdata.substr(11,2))) % 12);
	out = out.replace(/HH/g, tdata.substr(11,2));
	out = out.replace(/H/g, removeZero(tdata.substr(11,2)));
	out = out.replace(/mn/g, tdata.substr(14,2));
	out = out.replace(/ss/g, tdata.substr(17,2));
	return out;
}

function getCss(url) {
	var ncss = document.createElement('link')
	ncss.setAttribute('rel', 'stylesheet');
	ncss.setAttribute('type', 'text/css');
	ncss.setAttribute('href', url);
	document.getElementsByTagName('head').item(0).appendChild(ncss);
}

// -------------- ESTENSIONI JQUERY -------------- 

(function() {
	jQuery.fn.fullhtml = function() {
		var tagName = this[0].tagName.toLowerCase()
		var attribs = this[0].attributes
		var outCode = "<" + tagName;
		for( var i = 0; i < attribs.length; i++ ) {
			var attrName = attribs[i].nodeName;
			outCode += " "+ attrName + "='" + $(this).attr( attrName ) + "'"
		}
		outCode += ">" + $(this).html() + "</" + tagName + ">"
		return outCode
	}
})(jQuery);

(function() {
jQuery.fn.keyenter = function(callback) {
	return this.each(function(){
		$(this).keyup(function(e) {
			var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
			if((key == 13) && callback)
				return callback
		});
	});
}
})(jQuery);

// -------------- FUNZIONI SPECIFICHE -------------- 

$(document).ready(function() {
	var sel = '#content ul.appuntamenti_home li:odd, #content ul.appuntamenti li:odd, #content ul.attrattive li:odd, #content ul.offerte li:odd, #content ul.guestbook li:odd';
	$(sel).css('background-color', '#FFFBEC');
	$('#content table.tariffe tr:even').css('background-color', '#F4F4F4');
	
	$('#procedi').click(function() {
		hhotelDispoprice(getById('fastbookings_form'));
		return false;
	});
	if(typeof start == 'function') start();
});