
/*	File library.js - Versione del 14/05/2008			*/

/*	DIRECTORY LIBRARY / CSS						*/

/*	--------------------------------------------------	*/

var tipo_browser;
var dim_schermo;
var dim_screen;
var dim_finestra;
var dim_window;
tipo_browser = get_browser();	
dim_schermo = get_screen();
dim_screen 	= get_dim_screen(dim_schermo);
dim_finestra = get_dim_finestra();
dim_window   = get_dim_screen(dim_finestra);
function get_browser ()  {
	var result;
	var isamac = false;
	if (document.layers) result = "n4"
	else
		if (document.all)
		{	if (navigator.appName == "Microsoft Internet Explorer") result = "ie"
			else
			if (navigator.appName == "Opera") result = "op"
			else result = "xx"
		}
		else
		{	if (!document.all && document.getElementById)
				result = "mz";
			else
				result = "xx";
		}
	if (navigator.platform.indexOf("Mac")>=0){ isamac = true; }
	return result;
}
function get_screen ()  {
	var result;
	if (window.screen.width <= 801) result = "low";
	else 
	if (window.screen.width <= 1025) result = "high";
	else 
	if (window.screen.width <= 1155) result = "high";
	else
	if (window.screen.width <= 1281) result = "large";
	else
	if (window.screen.width <= 1441) result = "xl";
	else result = "vl";
	return result;
}
function get_dim_finestra ()  {
	var result;
	var larghezza = get_window_w();
	if (larghezza <= 801) result = "low";
	else 
	if (larghezza <= 1025) result = "high";
	else
	if (larghezza <= 1155) result = "high";
	else
	if (larghezza <= 1281) result = "large";
	else
	if (larghezza <= 1441) result = "xl";
	else result = "vl";
	return result;
}
function get_dim_screen (dim)  {
	var result;
	if (dim == "low") result = "800";
	else 
	if (dim == "high") result = "1024";
	else
	if (dim == "large") result = "1280";
	else
	if (dim == "xl") result = "1400";
	else
	if (dim == "vl") result = "1600";
	else { alert("Errore funzione get_dim_screen() - Input invalido: " + dim); return "0"; }
	return result;
}
function get_window_w() {
	var retour;
	var myWidth = 0;
	var ff_scroll_verticale = 16;
	retour = get_window_browser();
	if(retour == "non-ie") 
	{	if (tipo_browser == "mz") myWidth = window.innerWidth - ff_scroll_verticale;
	  	else
	  	if (tipo_browser == "op") myWidth = window.innerWidth;  	
	}
	else if(retour == "ie-6+") myWidth = document.documentElement.clientWidth;
	else if(retour == "ie-4")  myWidth = document.body.clientWidth;
	else myWidth = window.screen.width;
	return myWidth;
}
function get_window_h() {
	var retour;
	var myHeight = 0;
	retour = get_window_browser();
	if(retour == "non-ie") myHeight = window.innerHeight;
	else if(retour == "ie-6+") myHeight = document.documentElement.clientHeight;
	else if(retour == "ie-4")  myHeight = document.body.clientHeight;
	else myHeight = window.screen.height;	
	return myHeight;
}
function get_window_browser() {
	if(typeof(window.innerWidth) == "number") return "non-ie";
	if(document.documentElement &&	 
		(document.documentElement.clientWidth || document.documentElement.clientHeight)) return "ie-6+"; 
	if(document.body && (document.body.clientWidth || document.body.clientHeight)) return "ie-4";
	return "??";
}
function str_vuota (stringa) {
	var i, dim, car;
	dim = stringa.length;
	if (dim <= 0) return true;
	for (i= 0; i<dim; i++)
	{	car = stringa.charAt(i);
		if (car == " ") continue;
		if (car == "\n" || car == "\r" || car == "\t" || car == "\f" || car == "\b") continue;
		return false;
	}
	return true;
}
function str_e_mail (stringa) {
	var dim;
	dim = stringa.length;
	if (dim <= 0) return false;
	l1 = stringa.indexOf("@");
	l2 = stringa.lastIndexOf("@");
	if (l1 != l2) return false;	
	if ((stringa.indexOf("@") == -1) | (stringa.indexOf(".") == -1) | (dim < 6)) return false;
	return true;
}
function str_numeri (stringa) {
	var i, dim, count;
	dim = stringa.length;
	count = 0;
	for (i=0; i<dim; i++)  {
		car = stringa.charAt(i);
		if (car == '0' || car == '1' || car == '2' || car == '3' || car == '4' || car == '5' || car == '6' || car == '7' || car == '8' || car == '9') count++;
	}
	if (count != dim) return false;
	return true;
}
function str_numeri_more (stringa) {
	var i, dim, count;
	dim = stringa.length;
	count = 0;
	for (i=0; i<dim; i++)  {
		car = stringa.charAt(i);
		if (car == '0' || car == '1' || car == '2' || car == '3' || car == '4' || car == '5' || car == '6' || car == '7' || car == '8' || car == '9' || car == '.' || car == ',' || car == '+' || car == '-' || car == ' ') count++;
	}
	if (count != dim) return false;
	return true;
}
function str_numero_telefonico (stringa) {
	var i, dim, count, count_plus, count_par_open, count_par_close;
	dim = stringa.length;
	count = 0;
	count_plus = 0;
	count_par_open = 0;
	count_par_close = 0;
	for (i=0; i<dim; i++)  {
		car = stringa.charAt(i);
		if (car == '0' || car == '1' || car == '2' || car == '3' || car == '4' || car == '5' || car == '6' || car == '7' || car == '8' || car == '9' || car == '(' || car == ')' || car == '+' || car == ' ') count++;
		if (car == '+') count_plus++;
		if (car == '(') count_par_open++;
		if (car == ')') count_par_close++;
	}
	if (count != dim) return false;
	if (count_plus > 1) return false;
	if (count_par_open > 1) return false;
	if (count_par_close > 1) return false;
	if (count_par_open != count_par_close) return false;
	return true;
}
function str_data (stringa) {
	var i, dim, giorno, mese, anno;
	dim = stringa.length;
	if (dim != 10) return 1;
	if (stringa.charAt(2) != "/") return 2;
	if (stringa.charAt(5) != "/") return 3;
	giorno = stringa.substr(0,2);
	if (str_numeri(giorno) != true) return 4;
	if (parseInt(giorno,10) > 31)  return 5;
	mese   = stringa.substr(3,2);
	if (str_numeri(mese) != true) return 6;
	if (parseInt(mese,10) > 12) return 7;
	anno   = stringa.substr(6,4);		
	if (str_numeri(anno) != true) return 8;
	if (parseInt(anno,10) < 1900) return 9;
	data = new Date(anno,mese-1,giorno);
	daa = data.getFullYear().toString();
	dmm = (data.getMonth()+1).toString();
	dmm = dmm.length == 1 ? "0" + dmm : dmm;
	dgg = data.getDate().toString();
	dgg = dgg.length == 1 ? "0" + dgg : dgg;
	data_calcolata = dgg + "/" + dmm + "/" + daa;
	if (data_calcolata != stringa) return 10;
	return 0;
}
function str_replace (stringa_in, car, pos) {
	var dim;
	var stringa_out = "";
	dim = car.length;
	if (dim != 1) { alert("Funz. str_replace() - errore car:" + car); return stringa_out; }
	dim = stringa_in.length;
	if (dim <= 0) return " ";
	if (pos < 0 || pos >= dim) { alert("Funz. str_replace() - errore pos = " + pos); return stringa_out; }
	if (pos == 0) stringa_out = car + stringa_in.substring(1,dim);
	else
	if (pos == dim-1) stringa_out = stringa_in.substring(0,pos) + car;
	else stringa_out = stringa_in.substring(0,pos) + car + stringa_in.substring(pos+1,dim);
	return stringa_out;
}
function str_pulire (stringa_in) {
	var i, dim, first, last;;
	var stringa_inter = "";
	var stringa_out = "";
	dim = stringa_in.length;
	if (dim == 0) return stringa_out;
	last = dim - 1;	
	first = -1;
	for (i=0; i<dim; i++)  
	{	car = stringa_in.charAt(i);
		if (car != " ") { first = i; break; }
	}
	if (first == -1) { return stringa_out; }
	stringa_inter = stringa_in.substring(first,last+1);
	dim = stringa_inter.length;	
	first = -1;
	last = dim - 1;
	for (i=last; i>=0; i--)
	{	car = stringa_inter.charAt(i);
		if (car != " ") { first = i; break; }
	}
	if (first == -1) stringa_out = stringa_inter;
	else stringa_out = stringa_inter.substring(0,first+1);
	return stringa_out;
}
function str_pulire_data (data_in) {
	var dim, car1, car2;
	var data_inter = "";
	var data_out = "";
	dim = data_in.length;
	if (dim != 10) return data_in;
	car1 = data_in.charAt(2);
	car2 = data_in.charAt(5);
	if (car1 == "." || car1 == "-") data_inter = str_replace(data_in, "/",2);
	else data_inter = data_in;
	if (car2 == "." || car2 == "-") data_out = str_replace(data_inter, "/",5);
	else data_out = data_inter;	
	return data_out;
}
function mclink(stringa_in) {
	var i, lg_in;
	var stringa_out = "";
	lg_in = stringa_in.length;
	if (lg_in > 0) {
		for (i=0; i<lg_in; i++) {
			car = stringa_in.charAt(i);
			if (car == "("  || 
			    car == ")"  || 
			    car == "["  || 
			    car == "]"  ||
			    car == "\"" ||
			    car == "$"  ||
			    car == "?"  ||
			    car == "^"  ||
			    car == "|"  ||
			    car == "!"  ||
			    car == "\\") stringa_out = stringa_out.concat("\\");
			stringa_out = stringa_out.concat(stringa_in.charAt(i));
		}
		return stringa_out;
	}
	else return null;
}
function gup (name) {
	var name, regexS, regex, results;
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	regexS = "[\\?&]"+name+"=([^&#]*)";
	regex = new RegExp(regexS);
	results = regex.exec(window.location.href);
	if (results == null) return "";
	else return results[1];
}

