/*
Setta il focus (e se possibile evidenzia il contenuto) sul primo elemento valido della prima form valida.
Compatibile con:
IE 6.0 +
*/
function SetFocus(form,element) {
	// verifico se esiste la form passata
	if (document.forms[form]) {
		// verifico se esite l'elemento passato
		Obj = document.forms[form].elements[element];
		if (Obj) {
			// verifico che l'elemento passato non sia bottone o immagine e che sia visibile
			if (!Obj.disabled && !Obj.readOnly && Obj.type!='button' && Obj.type!='image' && Obj.type!='hidden' && Obj.type!=undefined) {
				// se è una textbox la imposto come selezionata, altrimenti la metto solo in focus
				if (Obj.type=='text') {
					Obj.focus();
					Obj.select();
				}
				else
					Obj.focus();
				return; // TROVATO L'ELEMENTO DA EVIDENZIARE!!
			}
			else {
				// passo all'elemento successivo
				element += 1;
				SetFocus(form,element);
			}
		}
		else {
			// passo alla form successiva
			element = 0;
			form		+= 1;
			SetFocus(form,element);
		}
	}
	else
		// non ci sono elementi da evidenziare
		return;
}

function trim(s) {
 var r=/\b(.*)\b/.exec(s);
 return (r==null)?"":r[1];
}

function getElementByClass(myClass,myTag) {  
	var inc=0
	var customcollection = new Array()

	var alltags=document.all? document.all : document.getElementsByTagName(myTag)
	for (i=0; i<alltags.length; i++){
		if (alltags[i].className==myClass)
			customcollection[inc++]=alltags[i]
	}
	return customcollection;
}


function SetCookie(cName, cValue){ 
    // definisce per comodità una stringa contenente il punto e virgola: 
    semi = ";"; 
    // legge la data corrente: 
    var ExpDate = new Date(); 
    // aggiunge 365 giorni alla data corrente per creare la data di scadenza del cookie: 
    ExpDate.setTime(ExpDate.getTime() + (365 * 24 * 3600 * 1000)); 
    // invia il cookie di nome cName con valore cValue e scadenza oggi+365: 
    self.document.cookie = cName + "=" + cValue + semi + " expires=" + 
    ExpDate.toGMTString()  + semi; 
} 

// Legge il cookie: 
function GetCookie(name){ 

    // estrae il valore del cookie (utilizzata da GetCookie): 
    function getCookieVal(offset){ 
        var endstr = document.cookie.indexOf (";", offset); 
        if (endstr == -1) 
            endstr = document.cookie.length; 
        return unescape(document.cookie.substring(offset, endstr)); 
    } 

	// baco (saltuario)di IE 
	name = document.getElementById(name).id;
    // crea una stringa formata dal nome del Cookie più il segno dell'uguale: 
    var arg = name + "="; 
    // definisce la lunghezza della stringa arg: 
    var alen = arg.length; 
    // definisce la lunghezza totale del cookie: 
    var clen = document.cookie.length; 
    var i = 0; 
    // finché non raggiunge la fine del Cookie: 
    while (i < clen) { 
        var j = i + alen; 
        // cerca la stringa arg all'interno del cookie: 
        if (document.cookie.substring(i, j) == arg) {
            // se la trova passa alla funzione getCookie l'offset 
            // della stringa cercata (da dove inizia il suo valore) 
            return getCookieVal (j); 
				}
        i = document.cookie.indexOf(" ", i) + 1; 
        if (i == 0) 
            break; 
    } 
    return null; 
} 

// Permette di visualizzare un DIV sopra una dropdown o simili
// necessita del seguente iframe ad inizio pagina:
// <iframe id='HelpShim' src='javascript:false;' scrolling='no' frameborder='1' style='position:absolute; top:100px; left:727px; display:none;'></iframe>
function toggleDisplay(div,iframe,objpos,pos)
{
	var t=0;
	var l=0;
	var state=false;

	var cNode = document.getElementById(objpos);
	while(cNode.tagName!='BODY'){ 
       		l+=cNode.offsetLeft; 
       		t+=cNode.offsetTop; 
       		cNode=cNode.offsetParent; 
    	}

	var DivRef = document.getElementById(div);
	var IfrRef = document.getElementById(iframe);
   	var ObjPos = document.getElementById(objpos);

	if (DivRef.style.display=="none") {
		state=true;
	} else {
		state=false;
	}

   	if(state)
   	{
    		DivRef.style.display = "block";
    		IfrRef.style.width = DivRef.offsetWidth;
    		IfrRef.style.height = DivRef.offsetHeight;
	
	switch (pos) {
		case "left": 
    			DivRef.style.top = t;
    			DivRef.style.left = (l-ObjPos.offsetWidth);
    			IfrRef.style.top = t;
    			IfrRef.style.left = (l-ObjPos.offsetWidth);
	  		break;
		case "right": 
					DivRef.style.top = t;
					DivRef.style.left = (l+ObjPos.offsetWidth);
    			IfrRef.style.top = t;
    			IfrRef.style.left = (l+ObjPos.offsetWidth);
	  		break;
		case "bottom": 
					DivRef.style.top = (t+ObjPos.offsetHeight);
    			DivRef.style.left = l;
    			IfrRef.style.top = (t+ObjPos.offsetHeight);
    			IfrRef.style.left = l;
	  		break;
		case "top": 
    			DivRef.style.top = (t-ObjPos.offsetHeight);
    			DivRef.style.left = l;
    			IfrRef.style.top = (t-ObjPos.offsetHeight);
    			IfrRef.style.left = l;
	  		break;
        	}


    	IfrRef.style.zIndex = DivRef.style.zIndex - 1;
    	IfrRef.style.display = "block";
    	IfrRef.style.backgroundColor = "black";
			if (window.document.onclick != null && window.document.onclick != '')
			{
				alert('attenzione: onclick già gestito:' + window.document.onclick);
			}
			window.document.onclick = function(){toggleDisplay(div,iframe,objpos,'');};
   	}
   	else
   	{
				window.document.onclick = '';
    		DivRef.style.display = "none";
    		IfrRef.style.display = "none";
   	}

}



var isIE = (window.navigator.userAgent.indexOf("MSIE") > 0);

/*
if (! isIE) {
  HTMLElement.prototype.__defineGetter__("innerText", 
              function () { return(this.textContent); });
  HTMLElement.prototype.__defineSetter__("innerText", 
              function (txt) { this.textContent = txt; });
}
*/

function crossBrowser_AttachEvent(evt, func){
    if (evt == "onblur") evt = "blur";
    this.addEventListener(evt, func, false)
}

function crossBrowser_DetachEvent(evt, func){
    if (evt == "onblur") evt = "blur";
    this.removeEventListener(evt, func)
}

if (! isIE) {
    HTMLElement.prototype.__defineGetter__("innerText", function () {return this.textContent;});
    HTMLElement.prototype.__defineSetter__("innerText", function (txt) {this.textContent = txt;});

    HTMLElement.prototype.attachEvent = crossBrowser_AttachEvent;
    HTMLElement.prototype.detachEvent = crossBrowser_DetachEvent;
}


function HTMLXmlElement() {}
HTMLXmlElement.prototype.getters = [];
HTMLXmlElement.prototype.setters = [];
HTMLXmlElement.prototype.getters["text"] = function() {return this.textContent;};

if (!isIE)
    Object.prototype.inheritFrom = function(myInterface) {
        for (var i in myInterface.prototype) {
            switch (i) {
                case "getters":
                    for (var j in myInterface.prototype.getters)
                        this.__defineGetter__(j, myInterface.prototype.getters[j]);
                break;
                case "setters":
                    for (var j in myInterface.prototype.setters)
                        this.__defineSetter__(j, myInterface.prototype.setters[j]);
                break;
            }
        }
    }    

    
function clearHint(obj){
    if (obj.getAttribute("hint") == obj.value){
        obj.value = "";
    }
    else
        obj.select();
}

function setHint(obj){
    if (obj.value == ""){
        obj.value = obj.getAttribute("hint");
    }
}

function Hint_Navigate(url, obj){
    if (obj.getAttribute("hint") == obj.value || obj.value == ""){
        alert("Impostare la parola chiave");
    }
    else
        self.location = url + obj.value;
}

function Hint_Navigate_2Param(url, var1, val1, var2, val2){
    if (trim(val1) == "" || val1 == "Inserisci parola chiave"){
        alert("Impostare la parola chiave");
    }
    else
        self.location = url + '?' + var1 + '=' + val1 + '&' + var2 + '=' + val2;
}
