/**
 * /_codice/_standard.js
 *
 * @author 		Fabio Mosti
 *
 * @description 	questo file include tutte le funzioni javascript dello standard
 *
 * @modified		2007-09-04 v5.4 Fabio Mosti
 *			aggiunto commento in testa al file
 *
 */

// funzioni per mostrare/nascondere elementi sulla pagina
    function enhancedShowHide(sec,lev,img1,img2)
	{
	    // ricava l'id della sezione
	    var sectionid = document.getElementById(sec);

	    //precarica l'immagine del piu'
	    plus = new Image();
	    plus.src = lev + img1;
//	    plus.src = "Grafica/folder-2v0.png";
	    // precarica l'immagine del meno
	    minus = new Image();
	    minus.src = lev + img2;
//	    minus.src = "Grafica/folder-open-2v0.png";

	    if (sectionid.style.display == '')
		// se la sezione e' gia' espansa
	        {
		    // nascondi la sezione...
		    sectionid.style.display='none';
		    // ...e trasforma il pulsante in piu'
		    document ["img-" + sec].src = plus.src;
	        }
	    else
		//altrimenti
	        {
		    // nascondi la sezione...
		    sectionid.style.display='';
		    // ...e trasforma il pulsante in meno
		    document ["img-" + sec].src = minus.src;
	        }
	}

    function showhide_textonly(sec) {
	    var sectionid = document.getElementById(sec);	// ricava l'id della sezione

	    if (sectionid.style.display == '')		// se la sezione e' gia' espansa
	        {
		    sectionid.style.display='none';	// nascondi la sezione...
	        }
	    else
	        {
		    sectionid.style.display='';		// mostra la sezione...
	        }
	}

    function showonly(sec) {
	    var sectionid = document.getElementById(sec);
	    sectionid.style.display='';
	}

    function hideonly(sec) {
	    var sectionid = document.getElementById(sec);
	    sectionid.style.display='none';
	}

// funzioni per le password
    function calcolaForzaPw() {
	    var pw = document.getElementById('newPasw0').value;

	    var pwlength = (pw.length);
	    if (pwlength > 5)
	        pwlength = 5;

	    var numnumeric = pw.replace (/[0-9]/g, "");
	    var numeric = (pw.length - numnumeric.length);
	    if (numeric > 3)
	        numeric = 3;

	    var symbols = pw.replace (/\W/g, "");
	    var numsymbols = (pw.length - symbols.length);
	    if (numsymbols > 3)
	        numsymbols = 3;

	    var numupper = pw.replace (/[A-Z]/g, "");
	    var upper = (pw.length - numupper.length);
	    if (upper > 3)
	        upper = 3;

	    var pwstrength = ((pwlength * 10) - 20) + (numeric * 10) + (numsymbols * 15) + (upper * 10);

	    if (pwstrength < 0)
	        pwstrength = 0;

	    if (pwstrength > 100)
	        pwstrength = 100;

	    return pwstrength;
	}

// funzioni per i popup
    function popup(img,lvl,dida) {
	    z=window.open(lvl + "_codice/_bin/_popUpImg.php?img="+img+"&dida="+dida,"zoom","scrollbar=no");
	    z.focus();
	}

    function popupFlv(img,lvl,dida) {
	    z=window.open(lvl + "_codice/_bin/_popUpFlv.php?video="+img+"&dida="+dida,"zoom","scrollbar=no");
	    z.focus();
	}


function addwarning()
    {
	var thealinks = document.getElementsByTagName("span");
	if (!thealinks) { return; }

	for(var x=0;x!=thealinks.length;x++)
	    {
		if(thealinks[x].className == "addToolTip")
		    {
			thealinks[x].setAttribute("tooltiptext",thealinks[x].title);
			thealinks[x].removeAttribute("title");
			thealinks[x].onmouseover = function gomouseover() {ddrivetip(this.getAttribute("tooltiptext"))};
			thealinks[x].onmouseout = function gomouseout() {hideddrivetip();};
		    }
	    }
    }

function ietruebody()
    {
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;
    }

function ddrivetip(thetext, thewidth, thecolor)
    {
	if (ns6||ie)
	    {
		if (typeof thewidth!=="undefined") {tipobj.style.width=thewidth+"px";}
		if (typeof thecolor!=="undefined" && thecolor!=="") {tipobj.style.backgroundColor=thecolor;}
		tipobj.innerHTML=thetext;
		enabletip=true;
		return false;
	    }
    }

function positiontip(e)
    {
	if (enabletip)
	    {
		var nondefaultpos=false;
		var curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft;
		var curY=(ns6)?e.pageY : event.clientY+ietruebody().scrollTop;
		var winwidth=ie&&!window.opera? ietruebody().clientWidth : window.innerWidth-20;
		var winheight=ie&&!window.opera? ietruebody().clientHeight : window.innerHeight-20;

		var rightedge=ie&&!window.opera? winwidth-event.clientX-offsetfromcursorX : winwidth-e.clientX-offsetfromcursorX;
		var bottomedge=ie&&!window.opera? winheight-event.clientY-offsetfromcursorY : winheight-e.clientY-offsetfromcursorY;

		var leftedge=(offsetfromcursorX<0)? offsetfromcursorX*(-1) : -1000;

		if (rightedge<tipobj.offsetWidth)
		    {
			tipobj.style.left=curX-tipobj.offsetWidth+"px";
			nondefaultpos=true;
		    }
		else if (curX<leftedge)
		    {
			tipobj.style.left="5px";
		    }
		else
		    {
			tipobj.style.left=curX+offsetfromcursorX-offsetdivfrompointerX+"px";
			pointerobj.style.left=curX+offsetfromcursorX+"px";
		    }

		if (bottomedge<tipobj.offsetHeight)
		    {
			tipobj.style.top=curY-tipobj.offsetHeight-offsetfromcursorY+"px";
			nondefaultpos=true;
		    }
		else
		    {
			tipobj.style.top=curY+offsetfromcursorY+offsetdivfrompointerY+"px";
			pointerobj.style.top=curY+offsetfromcursorY+"px";
		    }
		tipobj.style.visibility="visible";
		if (!nondefaultpos)
		    {
			pointerobj.style.visibility="hidden";
		    }
		else
		    {
			pointerobj.style.visibility="hidden";
		    }
	    }
    }

function hideddrivetip()
    {
	if (ns6||ie)
	    {
		enabletip=false;
		tipobj.style.visibility="hidden";
		pointerobj.style.visibility="hidden";
		tipobj.style.left="-1000px";
		tipobj.style.backgroundColor='';
		tipobj.style.width='';
	    }
    }

var ie4=document.all
var ns6=document.getElementById&&!document.all

if (ie4||ns6)
    document.write('<div id="dropmenudiv" style="visibility:hidden; width: ' + menuWidth + 'px" onMouseover="clearhidemenu()" onMouseout="dynamichide(event)"></div>')

function getposOffset(what, offsettype) {
	var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
	var parentEl=what.offsetParent;
	while (parentEl!=null) {
		totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
		parentEl=parentEl.offsetParent;
	    }
	return totaloffset;
    }

function showhide(obj, e, visible, hidden, menuWidth){
	if (ie4||ns6)
	    dropmenuobj.style.left=dropmenuobj.style.top=-500
	dropmenuobj.widthobj=dropmenuobj.style
	dropmenuobj.widthobj.width=menuWidth
	if (e.type=="click" && obj.visibility==hidden || e.type=="mouseover")
	    obj.visibility=visible
	else if (e.type=="click")
	    obj.visibility=hidden
    }

function iecompattest() {
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
    }

function clearbrowseredge(obj, whichedge) {
	var edgeoffset=0
	if (whichedge=="rightedge") {
		var windowedge=ie4 && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15
		dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
		if (windowedge-dropmenuobj.x-obj.offsetWidth < dropmenuobj.contentmeasure)
			edgeoffset=dropmenuobj.contentmeasure+obj.offsetWidth
	    }
	else {
		var topedge=ie4 && !window.opera? iecompattest().scrollTop : window.pageYOffset
		var windowedge=ie4 && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
		dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
		if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure) { //move menu up?
			edgeoffset=dropmenuobj.contentmeasure-obj.offsetHeight
		if ((dropmenuobj.y-topedge)<dropmenuobj.contentmeasure) //up no good either? (position at top of viewable window then)
			edgeoffset=dropmenuobj.y
		    }
	    }
	return edgeoffset
    }

function populatemenu(what) {
	if (ie4||ns6)
    	    dropmenuobj.innerHTML=what.join("")
    }

function dropdownmenu(obj, e, menucontents, menuWidth) {
	if (window.event)
	    event.cancelBubble = true
	else if (e.stopPropagation)
	    e.stopPropagation()
	clearhidemenu()
	dropmenuobj = document.getElementById? document.getElementById("dropmenudiv") : dropmenudiv
	populatemenu(menucontents)

	if (ie4||ns6) {
		showhide(dropmenuobj.style, e, "visible", "hidden", menuWidth)
		dropmenuobj.x=getposOffset(obj, "left")
		dropmenuobj.y=getposOffset(obj, "top")
		dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+obj.offsetWidth+horizontaloffset+"px"
		dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+verticaloffset+"px"
	    }
	return clickreturnvalue()
    }

function clickreturnvalue() {
	if (ie4||ns6) return false
	else return true
    }

function contains_ns6(a, b) {
	while (b.parentNode)
	if ((b = b.parentNode) == a)
	    return true;
	return false;
    }

function dynamichide(e) {
	if (ie4&&!dropmenuobj.contains(e.toElement))
	delayhidemenu()
	else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
	delayhidemenu()
    }

function hidemenu(e) {
	if (typeof dropmenuobj!="undefined") {
		if (ie4||ns6)
	        dropmenuobj.style.visibility="hidden"
	    }
    }

function delayhidemenu() {
	if (ie4||ns6)
	delayhide=setTimeout("hidemenu()",disappeardelay)
    }

function clearhidemenu() {
	if (typeof delayhide!="undefined")
	clearTimeout(delayhide)
    }

