// Configurazione
fadeColor = "#000E61"; 
stepIn = 17; 
stepOut = 25; 
autoFade = false; 
sloppyClass = true;
macCompat = false;

//Codice 
hexa = new makearray(16);
for(var i = 0; i < 10; i++)
  hexa[i] = i;
hexa[10] = "a"; 
hexa[11] = "b"; 
hexa[12] = "c";
hexa[13] = "d"; 
hexa[14] = "e"; 
hexa[15] = "f";
document.onmouseover = domouseover;
document.onmouseout = domouseout;
fadeColor = dehexize(fadeColor.toLowerCase());
var fadeId = new Array();

function dehexize(Color)
{
  var colorArr = new makearray(3);
  for (i=1; i<7; i++)
  {
    for (j=0; j<16; j++)
    {
      if (Color.charAt(i) == hexa[j])
      {
        if (i%2 !=0)
          colorArr[Math.floor((i-1)/2)]=eval(j)*16;
        else
          colorArr[Math.floor((i-1)/2)]+=eval(j);
      }
    }
  }
  return colorArr;
}

function domouseover() 
{
  if (document.all)
  {
    var srcElement = event.srcElement;
    if ((srcElement.tagName == "A" && autoFade && srcElement.className != "nofade") || 
      srcElement.className == "fade" || 
      (sloppyClass && srcElement.className.indexOf("fade") != -1)) 
    {
      if (!srcElement.startColor) 
      {
        srcElement.startColor = (srcElement.style.color)? srcElement.style.color : srcElement.currentStyle.color;
        srcElement.startColor = dehexize(srcElement.startColor.toLowerCase());
      }
      var link = (macCompat ? srcElement.name : srcElement.uniqueID);
      if (link) 
        fade(srcElement.startColor,fadeColor,link,stepIn); 
      else if (macCompat) 
        alert("Error: Mac Compatility mode enabled, but link has no name.");
     }
  }
}

function domouseout() 
{
  if (document.all)
  {
    var srcElement = event.srcElement;
    if ((srcElement.tagName == "A" && autoFade && srcElement.className != "nofade") || 
      srcElement.className == "fade" || 
      (sloppyClass && srcElement.className.indexOf("fade") != -1)) 
    {
      var link = (macCompat ? srcElement.name : srcElement.uniqueID);
      if (link) 
        fade(fadeColor,srcElement.startColor,link,stepIn);
    }
  }
}

function makearray(n) 
{
  this.length = n;
  for (var i = 1; i <= n; i++)
    this[i] = 0;
  return this;
}

function hex(i) 
{
  if (i < 0)
    return "00";
  else if (i > 255)
    return "ff";
  else
    return "" + hexa[Math.floor(i/16)] + hexa[i%16];
}

function setColor(r, g, b, element) 
{
  var hr = hex(r); 
  var hg = hex(g); 
  var hb = hex(b);
  element.style.color = "#" + hr + hg + hb;
}

function fade(s,e,element,step) 
{
  var sr = s[0]; 
  var sg = s[1]; 
  var sb = s[2];
  var er = e[0]; 
  var eg = e[1]; 
  var eb = e[2];

  if (fadeId[0] != null && fade[0] != element && eval(fadeId[0])) 
  {
    var orig = eval(fadeId[0]);
    setColor(orig.startColor[0], orig.startColor[1], orig.startColor[2], orig);
    var i = 1;
    while (i < fadeId.length) 
    {
      clearTimeout(fadeId[i]);
      i++;
    }
  }
  for (var i = 0; i <= step; i++) 
  {
    fadeId[i+1] = setTimeout("setColor(Math.floor(" + sr +
      " *(( " + step + " - " + i + " )/ " + step + " ) + " + er + " * (" + i + "/" +
      step + ")), Math.floor(" + sg + " * (( " + step + " - " + i + " )/ " + step + 
      " ) + " + eg + " * (" + i + "/" + step + ")), Math.floor(" + sb + 
      " * ((" + step + "-" + i + ")/" + step + ") + " + eb + 
      " * (" + i + "/" + step + "))," + element + ");", i*step);
    }
    fadeId[0] = element;
} 

function submit_form(mode,form_sel){
         var mode;
		 var form_sel;
                 form_sel.controllo.value = mode;
                 form_sel.submit();
}

function submit_form_campo(campo,mode, form_sel){
         var mode;
		 var campo;
		 var form_sel;
         campo.value = mode;
         form_sel.submit();
}

function popup(apri,id,stile) {
	window.open(apri + "?id=" + id, "", stile);
	}
function user_popup(apri) {
	window.open(apri, "",'top=10, left=250, width=670, height=680, status=no, menubar=no, toolbar=no, scrollbars=yes, dependent=yes');
}

function textCounter( field, countfield, maxlimit ) {
  if ( field.value.length > maxlimit )
  {
    field.value = field.value.substring( 0, maxlimit );
    alert( 'Attenzione, hai superato il numero massimo di caratteri!.' );
    return false;
  }
  else
  {
    countfield.value = maxlimit - field.value.length;
  }
}

function checkrequired(which){

var pass=true

if (document.images){

for (i=0;i<which.length;i++){

var tempobj=which.elements[i]

if (tempobj.name.substring(0,8)=="required"){

if (((tempobj.type=="text"||tempobj.type=="textarea")&&tempobj.value=='')||(tempobj.type.toString().charAt(0)=="s"&&tempobj.selectedIndex==-1)){

pass=false

break

}

}

}

}

if (!pass){

alert("Non hai compilato correttamente il form. Alcune informazioni non sono state inserite. Clicca su OK e verifica l'errore")

return false

}

else

return true

}
//Ajax
function createRequest(){
  var http_request;
        if (window.XMLHttpRequest) { // Mozilla, Safari, ...
            http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/xml');
                // Some versions of some Mozilla browsers won't work properly if the response from the server doesn't have an XML mime-type header
            }
        } else if (window.ActiveXObject) { // IE
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP"); //IE 6
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP"); // IE 5
                } catch (e) {}
            }
        }
  return http_request;
}

// Fade cross browser //////////////////////////////////////////////////////////////

/*
Fader cross-browser.
Author: Claudio Roma

Usage:

*** myObjVar=new Fader(r1,g1,b1,r2,g2,b2,upTime,downTime,framePeriod);
or
*** myObjVar=new Fader("#rrggbb","#rrggbb",upTime,downTime,framePeriod);
upTime,downTime and framePeriod in milliseconds.

*** myObjVar.fadeUp(id);
*** myObjVar.fadeDown(id);
fades up or down the HTML element with the related 'id'.
Usually called on "onMouseOver" and "onMouseOut" for the related element.

*/


function Fader(r1,g1,b1,r2,g2,b2,upTime,downTime,framePeriod) { 
//or Fader("#rrggbb","#rrggbb",upTime,downTime,framePeriod))

if (typeof(r1)=="string" && r1.charAt(0)=='#') { // colors as #rrggbb
	var c1=r1;
	var c2=g1;
	upTime=b1;
	downTime=r2;
	framePeriod=g2;
	r1=Fader.conversion(c1.substr(1,2));
	g1=Fader.conversion(c1.substr(3,2));
	b1=Fader.conversion(c1.substr(5,2));
	r2=Fader.conversion(c2.substr(1,2));
	g2=Fader.conversion(c2.substr(3,2));
	b2=Fader.conversion(c2.substr(5,2));
}

this.startColor=new Array(r1,g1,b1);
this.endColor=new Array(r2,g2,b2);
this.steps=1;
this.stepsUp=1;
this.stepsDown=1;
this.period=25;

this.colors=new Array();
this.fade=new Array();
this.fade['state']=new Array();
this.fade['sid']=new Array();

// Colors generation //
this.generateCols=function(){
	for (var c=0;c<=this.steps;c++){
		this.colors[c]=this.linear3(c);
	}
}

this.linear=function(step,comp){
	var c1=this.startColor[comp];
	var c2=this.endColor[comp];
	if (step==0) return c1;
	if (step==this.steps) return c2;
	var diff=c2-c1;
	return Math.round(c1+diff*step/(this.steps));
}
this.linear3=function(step){
	var col=new Array();
	for (var c=0;c<=2;c++){
		col[c]=this.linear(step,c);
	}
	return "rgb("+col[0]+","+col[1]+","+col[2]+")";
}
////////////////////

this.setParams=function(tUp,tDown,refPeriod){
	this.period=refPeriod;
	if (tUp<=tDown){
		this.steps=Math.round(tDown/refPeriod);
		this.stepsDown=1;
		this.stepsUp=Math.round(tDown/tUp);
	} else {
		this.steps=Math.round(tUp/refPeriod);
		this.stepsUp=1;
		this.stepsDown=Math.round(tUp/tDown);
	}
	this.generateCols();
}

this.getEl=function(id){
	return document.getElementById(id);
}

this.fadeUp=function(id){
	if (this.fade['state'][id]==undefined) this.fade['state'][id]=0;
	this.fade['sid'][id]=Math.random();
	this.goNext(id,+this.stepsUp,this.fade['sid'][id]);
}
this.fadeDown=function(id){
	if (this.fade['state'][id]==undefined) this.fade['state'][id]=0;
	this.fade['sid'][id]=Math.random();
	this.goNext(id,-this.stepsDown,this.fade['sid'][id]);
}
this.goNext=function(id,dir,sid){
	if (sid!=this.fade['sid'][id]) return; //scaduto
	this.fade['state'][id]+=dir;
	if (this.fade['state'][id]>this.steps) {
		this.fade['state'][id]=this.steps;
		this.fade['sid'][id]=Math.random();
	}
	if (this.fade['state'][id]<0) {
		this.fade['state'][id]=0;
		this.fade['sid'][id]=Math.random();
	}
	this.getEl(id).style.color=this.colors[this.fade['state'][id]];

    var thisObj = this;
    window.setTimeout( function(){ thisObj.goNext(id,dir,sid)},this.period); 

}

this.setParams(upTime,downTime,framePeriod);

} // Fader

Fader.convArr=new Array();
for (c=0;c<10;c++) Fader.convArr[c]=c;
Fader.convArr['a']=10;
Fader.convArr['b']=11;
Fader.convArr['c']=12;
Fader.convArr['d']=13;
Fader.convArr['e']=14;
Fader.convArr['f']=15;

Fader.conversion=function(hexa){
	hexa=hexa.toLowerCase();
	return Fader.convArr[hexa.charAt(1)]+16*Fader.convArr[hexa.charAt(0)];
}

// Fade cross browser //////////////////////////////////////////////////////////////

//Opacity: fade becoming transaprent //////////////////////////////////////////////////////////////
var opa_min=0.20;
var opa_max=1;
var opa_init=opa_min;
var opa_stepsUp=0.10;
var opa_stepsDown=0.05;
var opa_period=25;

var opa_fade=new Array();
opa_fade['state']=new Array();
opa_fade['sid']=new Array();

function getEl(id){
	return document.getElementById(id);
}

function opacityUp(id){
	if (opa_fade['state'][id]==undefined) opa_fade['state'][id]=opa_init;
	opa_fade['sid'][id]=Math.random();
	opa_goNext(id,+opa_stepsUp,opa_fade['sid'][id]);
}

function opacityDown(id){
	if (opa_fade['state'][id]==undefined) opa_fade['state'][id]=opa_init;
	opa_fade['sid'][id]=Math.random();
	opa_goNext(id,-opa_stepsDown,opa_fade['sid'][id]);
}
function opa_goNext(id,dir,sid){
	if (sid!=opa_fade['sid'][id]) return; //scaduto
	opa_fade['state'][id]+=dir;
	if (opa_fade['state'][id]>opa_max) {
		opa_fade['state'][id]=opa_max;
		opa_fade['sid'][id]=Math.random();
	}
	if (opa_fade['state'][id]<opa_min) {
		opa_fade['state'][id]=opa_min;
		opa_fade['sid'][id]=Math.random();
	}
	var el=getEl(id);
	if (!document.all) //w3c
		el.style.opacity=opa_fade['state'][id];
	else // ie
		el.filters.alpha.opacity=opa_fade['state'][id]*100;
	setTimeout("opa_goNext('"+id+"',"+dir+","+sid+")",opa_period);
}
//Opacity: fade becoming transaprent //////////////////////////////////////////////////////////////

function getEl(id){
	return document.getElementById(id);
}
