function popup(theURL,winName,features) { 
    window.open(theURL,winName,features);
}

function setPointer(theRow, theAction, theDefaultColor, thePointerColor, theMarkColor)
{
    var theCells = null;

    // 1. Pointer and mark feature are disabled or the browser can't get the
    //    row -> exits
    if ((thePointerColor == '' && theMarkColor == '')
        || typeof(theRow.style) == 'undefined') {
        return false;
    }

    // 2. Gets the current row and exits if the browser can't get it
    if (typeof(document.getElementsByTagName) != 'undefined') {
        theCells = theRow.getElementsByTagName('td');
    }
    else if (typeof(theRow.cells) != 'undefined') {
        theCells = theRow.cells;
    }
    else {
        return false;
    }

    // 3. Gets the current color...
    var rowCellsCnt  = theCells.length;
    var domDetect    = null;
    var currentColor = null;
    var newColor     = null;
    // 3.1 ... with DOM compatible browsers except Opera that does not return
    //         valid values with "getAttribute"
    if (typeof(window.opera) == 'undefined'
        && typeof(theCells[0].getAttribute) != 'undefined') {
        currentColor = theCells[0].getAttribute('bgcolor');
        domDetect    = true;
    }
    // 3.2 ... with other browsers
    else {
        currentColor = theCells[0].style.backgroundColor;
        domDetect    = false;
    } // end 3

    // 4. Defines the new color
    // 4.1 Current color is the default one
    if (currentColor == ''
        || currentColor.toLowerCase() == theDefaultColor.toLowerCase()) {
        if (theAction == 'over' && thePointerColor != '') {
            newColor = thePointerColor;
        }
        else if (theAction == 'click' && theMarkColor != '') {
            newColor = theMarkColor;
        }
    }
    // 4.1.2 Current color is the pointer one
    else if (currentColor.toLowerCase() == thePointerColor.toLowerCase()) {
        if (theAction == 'out') {
            newColor = theDefaultColor;
        }
        else if (theAction == 'click' && theMarkColor != '') {
            newColor = theMarkColor;
        }
    }
    // 4.1.3 Current color is the marker one
    else if (currentColor.toLowerCase() == theMarkColor.toLowerCase()) {
        if (theAction == 'click') {
            newColor = (thePointerColor != '')
                     ? thePointerColor
                     : theDefaultColor;
        }
    } // end 4

    // 5. Sets the new color...
    if (newColor) {
        var c = null;
        // 5.1 ... with DOM compatible browsers except Opera
        if (domDetect) {
            for (c = 0; c < rowCellsCnt; c++) {
                theCells[c].setAttribute('bgcolor', newColor, 0);
            } // end for
        }
        // 5.2 ... with other browsers
        else {
            for (c = 0; c < rowCellsCnt; c++) {
                theCells[c].style.backgroundColor = newColor;
            }
        }
    } // end 5

    return true;
} // end of the 'setPointer()' function

function CheckData(sdata)
{
	// controllo se la data di nascita è valida
	if(sdata=="")	return(false);

	bOK=true
	a=sdata;
	if (a.length != 10) bOK=false
	d = a.substring(0, 2)// day
	b = a.substring(3, 5)// month
	c = a.substring(2, 3)// '/'
	e = a.substring(5, 6)// '/'
	f = a.substring(6, 10)// year
	
	//basic error checking
	if (b<1 || b>12) bOK = false
	if (c != '/') bOK = false
	if (d<1 || d>31) bOK = false
	if (e != '/') bOK = false
	if (f<1900 || f>2099) bOK = false
	
	//advanced error checking
	
	// months with 30 days
	if (b==4 || b==6 || b==9 || b==11)
	{
		if (d==31) bOK=false
	}

	// february, leap year
	if (b==2)
	{
		// feb
		var g=parseInt(f/4)
		if (isNaN(g)) 
		{
			bOK=false
		}
		
		if (d>29) bOK=false
		if (d==29 && ((f/4)!=parseInt(f/4))) bOK=false
	}
	
	return(bOK);
}

function CheckEmail(sEmail)
{
	// controllo indirizzo email
	//check to see that at least one char in email is non-blank, @, and .
	bOK = false
	var bAmp = false
	var bPeriod = false
	
	iEmailLen = sEmail.length
	
	if(iEmailLen == 0)	return false
	
	
	for(var i = 0;i<iEmailLen;i++)
	{
		if(bOK==false)
		{
			if(sEmail.charAt(i) != " " && sEmail.charAt(i) != "." && sEmail.charAt(i) != "@") 
			{
				bOK = true
				if(bAmp== true && bPeriod== true) break
			}
		}//end if bok==false
	
		if(sEmail.charAt(i)=="@")
		{
			bAmp = true
			if(bPeriod==true && bOK==true) break
		}
	
		if(sEmail.charAt(i)==".")
		{
			bPeriod = true
			if(bAmp==true && bOK==true) break
		}
	} //end for
	
	if(bOK == false || bAmp == false || bPeriod == false)	return false
	else	return true
}

// masconde il tip message
function hidetip()
{
	if (document.layers) // Netscape 4.0+
	{
		document.tooltip.visibility="hidden"
	}
	else
	{
		if(document.getElementById) // Netscape 6.0+ and Internet Explorer 5.0+
	 	{
	 		elm=document.getElementById("tooltip");
	  		elm.style.visibility="hidden"
	 	}
	} 
}

// visualizza il tip message
function showtip(E,msg)
{
	if (document.layers) // Netscape 4.0+
	{
		theString="<DIV CLASS='ttip'>"+msg+"</DIV>"
		document.tooltip.document.write(theString)
		document.tooltip.document.close()
		document.tooltip.left=e.pageX+14
		document.tooltip.top=e.pageY+2
		document.tooltip.visibility="show"
	}
	else
	{
		if(document.getElementById) // Netscape 6.0+ and Internet Explorer 5.0+
		{
		
			y=0; x=0;
			if (E.pageX)
			 x=E.pageX;
			else 
				if (E.clientX)	
					x=E.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
	
			if (E.pageY)
				y=E.pageY;
			else 
				if (E.clientY)
	   				y=E.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);

			elm=document.getElementById("tooltip")
			//elml=current
			elm.innerHTML=msg
			//elm.style.height=elml.style.height
			elm.style.top=parseInt(y)
			elm.style.left=parseInt(x)
			elm.style.visibility = "visible"
		}
	}

	setTimeout('hidetip()', 5000);
}

