	var agt = navigator.userAgent.toLowerCase();
	is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));

	var httpReq = null;
	var standardMenuWidth = 294;
	
	if (openMenuWidth==undefined)
		var openMenuWidth = standardMenuWidth;
	headHeight = 94;
	frameMinBorder = 16;
	leftMenuWidth = openMenuWidth;
	headWidth = 960;
	footHeight = 40;
	minContentWidth = (81+2) * 8;
	minPWidth = minContentWidth + standardMenuWidth + 2;	// 2 per borders
	minPHeight = ((81+2) * 5) + headHeight + footHeight;
	
	waitHTML =  "<br/><br/><br/>\n<div style='text-align: center; margin: auto; height: 80%; border: none'>\n";
	waitHTML += "<br/><br/><br/><br/><img src='img/ajax_load2.gif' alt='wait' /><br/>\n";
	waitHTML += "</div>";

// -----------------------------------------------------------
function XSendHTTPReq(callUrl, resCallBack, postParams)
{
if (window.XMLHttpRequest)
	{
	httpReq = new XMLHttpRequest();
    }
else if (window.ActiveXObject)    
    {
	try	{
		httpReq = new ActiveXObject("Msxml2.XMLHTTP");
		}
	catch(mse)
		{
		try {
			httpReq = new ActiveXObject("Microsoft.XMLHTTP");
			}
		catch(microsofte)
			{
			alert(microsofte.message);
			httpReq = null;
			}
		}
	}

if (httpReq)
	{
	httpReq.open("POST", callUrl, true);
	httpReq.onreadystatechange = resCallBack;
	httpReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	//httpReq.setRequestHeader("Content-length", postParams.length);
	//httpReq.setRequestHeader("Connection", "close");
	// alert(postParams.replace(/&/, "\n"));
	httpReq.send(postParams);
	}
else
	alert("Cannot create XMLHttpRequest");
}
// -----------------------------------------------------------
function ExecHTTPReq(callUrl, HandleReqData, postParams, userParam)
{

if (httpReq != null)
	{
	AbortHttpReq(httpReq);
	httpReq = null;
	}

if (window.XMLHttpRequest)
	{
	httpReq = new XMLHttpRequest();
    }
else if (window.ActiveXObject)    
    {
	try	{
		httpReq = new ActiveXObject("Msxml2.XMLHTTP");
		}
	catch(mse)
		{
		try {
			httpReq = new ActiveXObject("Microsoft.XMLHTTP");
			}
		catch(microsofte)
			{
			alert(microsofte.message);
			httpReq = null;
			}
		}
	}

if (httpReq)
	{
	httpReq.open("POST", callUrl, true);
	httpReq.onreadystatechange = function(){ ReceiveHTTPReq(HandleReqData, userParam); };
	httpReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	//httpReq.setRequestHeader("Content-length", postParams.length);
	//httpReq.setRequestHeader("Connection", "close");
	// alert(postParams.replace(/&/, "\n"));
	httpReq.send(postParams);
	}
else
	alert("Cannot create XMLHttpRequest");
}
// -----------------------------------------------------------
function ReceiveHTTPReq(callBackFunc, usrParams)
{
if (httpReq.readyState == 4)
	{
	if (httpReq.status == 200)
		{
		var tagPos = httpReq.responseText.indexOf('<') + 1;		// check if biferno debug page
		if (httpReq.responseText.substring(tagPos, tagPos+4) == 'html')
			{
			if (is_ie)
				document.write(httpReq.responseText);
			else
				{
				document.close();
				var newDoc = document.open("text/html");
				newDoc.write(httpReq.responseText);
				newDoc.close();
				}
			return;
			}
		callBackFunc(httpReq, usrParams);
		}
	else
		{
		if (httpReq.status != 0)
			alert("There was a problem retrieving the XML data:\n" + httpReq.status + ": " + httpReq.statusText);
		}
	httpReq = null;
	}
}
// -----------------------------------------------------------
function CheckAbortXTR()
{
if (httpReq != null)
	{
	//alert("abort HTTP request");
	httpReq.abort();
	httpReq = null;
	}
}
// -----------------------------------------------------------
function AbortHttpReq(XMLHttp)
{
var killed = false;
if (XMLHttp.readyState != 4 && XMLHttp.readyState != 0)
	{
	// XMLHttp.onreadystatechange = null;
	XMLHttp.abort();
	killed = true;
	}
return killed;
}
// ---------------------------------------------
function pageWidth() {
	return window.innerWidth != null ? window.innerWidth: document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth:document.body != null? document.body.clientWidth:null;
} 
// ---------------------------------------------
function pageHeight() {
	return window.innerHeight != null? window.innerHeight: document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight:document.body != null? document.body.clientHeight:null;
} 
// ---------------------------------------------
function NewWindowMax(xMax, yMax, urlLoc)
{
var pw = screen.availWidth;
var ph = screen.availHeight;
var winW = (xMax && xMax < pw) ? xMax : pw;
var winH = (yMax && yMax < ph) ? yMax : ph;
var topWinPos = (window.screenY) ? window.screenY : window.screenTop;
var leftWinPos = (pw-winW)/2;
var option 	= "scrollbars=no, location=no,resizable=no,toolbar=no,status=no,menubar=no,";
option += "width=" + winW + ",height=" + winH + ",left=" + leftWinPos + ",top=" + topWinPos;	// topWinPos+((parentWinH-y)/2)
// if (yMax==pw && yMax==ph)
	option += ",fullscreen=yes";
var theWin = window.open(urlLoc+"&winW="+winW+"&winH="+(winH-28), "_blank", option);
if (theWin)
	theWin.focus();
else
	alert("Cannot open window!\nIt looks like Pop Up Windows are blocked!\n\nNon posso aprire la finestra!\nSembrerebbe che le finestre a comparsa sono bloccate!\n");

}
// ---------------------------------------------
function NewWindow(x, y, urlLoc)
	{
	var parentWinW = pageWidth();
	var parentWinH = pageHeight();
	/*
	var topWinPos = (window.screenY) ? window.screenY : window.screenTop;
	var leftWinPos = (window.screenX) ? window.screenX : window.screenLeft;
	*/
	var topWinPos = ((screen.availHeight - y) / 2) - 20;
	var leftWinPos = (screen.availWidth - x) / 2;
	var option 	= "scrollbars=no, location=no,resizable=yes,toolbar=no,titlebar=no,status=no,menubar=no,";
	option += "width=" + x + ",height=" + y + ",left="+leftWinPos + ",top="+topWinPos;	// topWinPos+((parentWinH-y)/2)
	var theWin = window.open(urlLoc, "_blank", option);
	if (theWin)
		theWin.focus();
	else
		alert("Cannot open window!\nIt looks like Pop Up Windows are blocked!\n\nNon posso aprire la finestra!\nSembrerebbe che le finestre a comparsa sono bloccate!\n");
	}
// ---------------------------------------------
function LeftMenuState(imgBtn, hasLargethumbs)
{
var searchTblDiv = document.getElementById("searchTblID");

var btnOpen = (leftMenuWidth == openMenuWidth) ? true : false;
if (btnOpen)
	{
	leftMenuWidth = closedMenuWidth;
	imgBtn.src = "img/open_icon.gif";
	imgBtn.alt = "open";
	searchTblDiv.style.display = "none";
	LeftLogoState(0);
	}
else
	{
	leftMenuWidth = openMenuWidth;
	imgBtn.src = "img/close_icon.gif";
	imgBtn.alt = "close";
	searchTblDiv.style.display = "block";
	LeftLogoState(1);
	}
var imgDetDisp = document.getElementById("img_detail");
if (imgDetDisp && imgDetDisp.style.display != "none")
	{
	var thumbDisp = document.getElementById("thumbContent");
	thumbDisp.style.MozOpacity = "1";	// "-moz-opacity:.1; opacity:.1;"
	thumbDisp.style.opacity = "1";
	thumbDisp.style.filter = "alpha(opacity= 100)";
	}
}
// ---------------------------------------------
function LeftLogoState(act)
{
var menuOpen = leftMenuWidth == openMenuWidth;
var visib = (menuOpen && act > 0) ? "visible" : "hidden";
document.getElementById("back_logoID").style.visibility = visib;
document.getElementById("sectionMenuTitle").style.visibility = visib;	// menuOpen ? "visible" : "hidden";
// alert(visib + "\n" + document.getElementById("sectionMenuTitle").style);
document.getElementById("vert_logo").style.display = (menuOpen) ? "none" : "block";
}
// -----------------------------------------------
function getCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0)
			return c.substring(nameEQ.length,c.length);
	}
	return null;
}
// -----------------------------------------------
function GetKey(e)
{
var keynum = (e) ? e.which : window.event.keyCode;
// keychar = String.fromCharCode(keynum);

return keynum;
}
// ============ Image Effects =================
function imgOpacity(img, toOp, passo, intervallo)
{
if (!passo)
	passo = .05;
if (!intervallo)
	intervallo = 100;

if (img.style.opacity != toOp)
	{
	iFXOpacity(img.id, toOp, passo, intervallo);
	}
}
// ------------------
function iFXOpacity(iID, toOp, passo, intervallo)
{
var im = document.getElementById(iID);
// alert("im= " + im.style);
if (im)
	{
	var op = parseFloat(im.style.opacity);
	// alert("op= " + op + "\n" + "toOp= " + toOp);
	if (op)
		{
		var newOp = null;
		if (op < toOp)
			newOp = op + passo;
		else if (op > toOp)
			newOp = op - passo;
		if (op != newOp)
			{
			im.style.opacity = newOp;
			im.style.filter = "alpha(opacity=" + parseInt(newOp*100) + ")";
			setTimeout("iFXOpacity('" + iID + "'," + toOp + "," + passo + "," + intervallo + ")", intervallo);
			}
		}
	}
}
// ----------------------------------------
function imgSize(img, toSize, passo, intervallo)
{
if (!passo)
	passo = 5;
if (!intervallo)
	intervallo = 100;

if (img.style.width != toSize)
	{
	iFXSize(img.id, toSize, passo, intervallo);
	}
}
// ------------------
function iFXSize(iID, toSize, passo, intervallo)
{
var im = document.getElementById(iID);
// alert("im= " + im.style);
if (im)
	{
	var iSize = parseInt(im.style.width);
	// alert("op= " + op + "\n" + "toSize= " + toSize);
	if (iSize != toSize)
		{
		var newSize;
		if (iSize < toSize)
			{
			newSize = iSize + passo;
			if (newSize > toSize)
				newSize = toSize;
			}
		else if (iSize > toSize)
			{
			newSize = iSize - passo;
			if (newSize < toSize)
				newSize = toSize;
			}
		im.style.width = newSize+'%';
		im.style.height = newSize+'%';
		setTimeout("iFXSize('" + iID + "'," + toSize + "," + passo + "," + intervallo + ")", intervallo);
		}
	else
		{
		// iFXOpacity(iID, 1, .1, 50);
		}
	}
}
// ------------------
function ShowTestata(iID, itemsName, toOp, passo, intervallo)
{
var im = document.getElementById(iID);
var mItems = document.getElementsByName(itemsName);
var totItems = mItems.length;
if (im)
	{
	var op = parseFloat(im.style.opacity);
	var newOp = toOp;
	if (op < toOp)
		{
		newOp = op + passo;
		if (newOp > toOp)
			newOp = toOp;
		}
	else if (op > toOp)
		{
		newOp = op - passo;
		if (newOp < toOp)
			newOp = toOp;
		}

	if (op != newOp)
		{
			im.style.opacity = newOp;
			im.style.filter = "alpha(opacity=" + (newOp*100) + ")";
			for (i = 0; i < totItems; i++)
			{
				mItems[i].style.opacity = newOp;
				mItems[i].style.filter = "alpha(opacity=" + (newOp*100) + ")";
			}
			t = setTimeout("ShowTestata('" + iID + "','" + itemsName + "'," + toOp + "," + passo + "," + intervallo + ")", intervallo);
		}
	else
		{
		clearTimeout(t);
		t = null;
		}
	}
}


// ====================================================
function WaitImgDelayed(elemID)
{
var elem = document.getElementById(elemID);
if (elem.innerHTML == "")		// non in overwrite con il wait se e gia riempito con il request.responseText
	elem.innerHTML = waitHTML;	// metto wait solo se contenuto vuoto
}
// ====================================================
function LinkSezArt(pNum, artID, eventID, stagID, sezNum, subSezNum)
{
newLoc = "index.bfr?m="+sezNum+"&v="+(subSezNum ? subSezNum : 1)+"&stagione_id="+stagID;
switch(sezNum)
	{
	case 3:		// beat report
		newLoc += "&evento="+eventID+"&art="+artID;	// art  anche la pagina, quindi pNum  unused
	break;
	}
//alert(newLoc);
window.location=newLoc;
}
// ====================================================
function addEvent(obj, ev, fn)
{
if (obj.addEventListener)
	obj.addEventListener(ev, fn, false);
else if (obj.attachEvent)
	obj.attachEvent('on' + ev, fn);
}
// ====================================================
String.prototype.capitalizeWords = function(){
var wordArr = this.split(' ');
var wordCnt = wordArr.length;
newString = "";
for(var w=0; w<wordCnt; w++)
	{
	var word = wordArr[w];
	if (word.length > 1)
		newString += word.substring(0,1).toUpperCase() + word.substring(1,word.length) + ' ';
	else
		newString += word.toLowerCase() + ' ';
	}
return newString.substring(0, newString.length-1);
};
// ====================================================
function getObjTopLeft(obj, scrollV, scrollH)	// scrollV e H servono per vecchi browser che non implementano getBoundingClientRect()
{
if (0 && obj.getBoundingClientRect)
	{
	var r = obj.getBoundingClientRect();
	//var iTop = r.top;
	// var iLeft = r.left;
	}
else
	{
	var iTop = scrollV ? -scrollV : 0;	// sottraggo lo scroll
	var iLeft = scrollH ? -scrollH : 0;
	var iHeight = obj.offsetHeight;
	var iWidth = obj.offsetWidth;
	do {
		iLeft += obj.offsetLeft;
		iTop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	var r = {"top" : iTop, "left" : iLeft, "bottom" : iTop+iHeight, "right" : iLeft+iWidth};
	}
return r;
}
