/********************************************************/
getElem = function(elemId) {
	return document.getElementById(elemId);	
}

posToCenter = function(elem) {
	var scrollPos = new getScrollPos();
	var pageSize = new getPageSize();
	var emSize = new getElementSize(elem);
	var x = Math.round(pageSize.width/2) - (emSize.width /2) + scrollPos.scrollX;
	var y = Math.round(pageSize.height/2) - (emSize.height /2) + scrollPos.scrollY;	
	elem.style.left = x+'px';
	elem.style.top = y+'px';	
}

getScrollPos = function() {
	var docElem = document.documentElement;
	this.scrollX = self.pageXOffset || (docElem&&docElem.scrollLeft) || document.body.scrollLeft;
	this.scrollY = self.pageYOffset || (docElem&&docElem.scrollTop) || document.body.scrollTop;
}

getPageSize = function() {
	var docElem = document.documentElement
	this.width = self.innerWidth || (docElem&&docElem.clientWidth) || document.body.clientWidth;
	this.height = self.innerHeight || (docElem&&docElem.clientHeight) || document.body.clientHeight;
}

getElementSize = function(elem) {
	this.width = elem.offsetWidth ||  elem.style.pixelWidth;
	this.height = elem.offsetHeight || elem.style.pixelHeight;
}

setOpacity = function (elemid,value)	{
		var e = getElem(elemid);
		e.style.opacity = value/10;
		e.style.filter = 'alpha(opacity=' + value*10 + ')';
}

resizeImageToScreen = function(objImg) {
	
	var pagesize = new getPageSize();
	
	var x = pagesize.width - 100;
	var y = pagesize.height - 100;

	if(objImg.width > x) { 
		objImg.height = objImg.height * (x/objImg.width); 
		objImg.width = x; 
		if(objImg.height > y) { 
			objImg.width = objImg.width * (y/objImg.height); 
			objImg.height = y; 
		}
	} 

	else if(objImg.height > y) { 
		objImg.width = objImg.width * (y/objImg.height); 
		objImg.height = y; 
		if(objImg.width > x) { 
			objImg.height = objImg.height * (x/objImg.width); 
			objImg.width = x;
		}
	}

	return objImg;
}

parseQuery = function(query) {
   var Params = new Object ();
   if (!query) return Params; 
   var Pairs = query.split(/[;&]/);
   for ( var i = 0; i < Pairs.length; i++ ) {
      var KeyVal = Pairs[i].split('=');
      if ( ! KeyVal || KeyVal.length != 2 ) continue;
      var key = unescape( KeyVal[0] );
      var val = unescape( KeyVal[1] );
      val = val.replace(/\+/g, ' ');
      Params[key] = val;

   }
   
   return Params;
}

/********************************************************
 Make this IE7 Compatible ;)
 http://ajaxian.com/archives/ajax-on-ie-7-check-native-first
*********************************************************/
createRequestObject = function() {
	var xmlhttp;
		/*@cc_on
	@if (@_jscript_version>= 5)
			try {xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
					try {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}
					catch (E) {xmlhttp = false;}
			}
	@else
		xmlhttp = false;
	@end @*/
	if (!xmlhttp && typeof XMLHttpRequest != "undefined") {
			try {xmlhttp = new XMLHttpRequest();} catch (e) {xmlhttp = false;}
	}
	return xmlhttp;
}

var http = createRequestObject();

/********************************************************/

var imgPreloader = new Image(); 

/********************************************************/
/* BOXSPLAH */
/********************************************************/
var bs_div_no = new Array();

var path_loading_img = "/images/indicator.gif";
var html_loading_img = "<img name=\"bs_div_loading_img\" src=\""+path_loading_img+"\" alt=\"Loading...\" style=\"width:128px;height:128px;\"/>"; // don't remove the name

var bs_sfondo_step_opacita = 8; 
var bs_inizializzato = false;	
var bs_width_def = "600px";
var bs_height_def = "500px";

/********************************************************/
bsSfondoShow = function() {
	var bs_sfondo = getElem('bs_div_sfondo');
	

	bs_sfondo.style.opacity = 0;
	bs_sfondo.style.filter = 'alpha(opacity=0)';
	setBGOpacity = setOpacity;
	for (var i=0;i<=bs_sfondo_step_opacita;i++) {setTimeout("setOpacity('bs_div_sfondo',"+i+")",70*i);} // from quirksmode.org
	
		
	bs_sfondo.style.display = "";
	var pagesize = new getPageSize();
	var scrollPos = new getScrollPos();
	var ua = navigator.userAgent;
	
	if(ua.indexOf("MSIE ") != -1) {bs_sfondo.style.width = pagesize.width+'px';} 
	/*else {bs_sfondo.style.width = pagesize.width-20+'px';}*/ // scrollbars removed! Hurray!
	bs_sfondo.style.height = pagesize.height+scrollPos.scrollY+'px';

    for (var i=0; i<bs_div_no.length; i++){
	  getElem(bs_div_no[i]).style.display = "none";
	}

}

bsSfondoHide = function() {
	var bs_sfondo = getElem('bs_div_sfondo');
	bs_sfondo.style.display = "none";

	for (var i=0; i<bs_div_no.length; i++){
	  getElem(bs_div_no[i]).style.display = "";
	}
}

/********************************************************/
var loadCancelled = false;

/********************************************************/
bsAttesaShow = function() {
	var bs_attesa = getElem('bs_div_attesa');
	bs_attesa.style.display = "";
	posToCenter(bs_attesa);
	bs_attesa.onclick = function() {bsHide();bsAttesaHide();loadCancelled = true;}
}


bsAttesaHide = function() {
	var bs_attesa = getElem('bs_div_attesa');
	bs_attesa.style.display = "none";
	bs_attesa.onclick = null;
}

bsInizializza = function(elem) {
    
    // a trick on just creating an bs_finestra wrapper then doing an innerHTML on our root bs_finestra element
    var strHTML = "<div id=\"bs_div_sfondo\" style=\"display:none;\"></div>";

    strHTML += "<div id=\"bs_div_attesa\" style=\"display:none;\">";
    strHTML += html_loading_img;
    strHTML += "</div>";
    
    strHTML += "<div id=\"bs_div_finestra\" style=\"display:none\">";

    strHTML += "<div id=\"bs_div_barra\">";
    strHTML += " <div id=\"bs_div_chiudi_box\" >";
    strHTML += "  <a id=\"bs_div_chiudi_link\" href=\"javascript:void(null);\" >CHIUDI</a>";
    strHTML += " </div>";
    strHTML += " <div id=\"bs_div_titolo\">&nbsp;</div>";
    strHTML += "</div>";
    
    strHTML += "<div id=\"bs_div_contenuto\"></div>";

    strHTML += "</div>";

    var docBody = document.getElementsByTagName("body")[0];
    var e = document.createElement("div");
    e.setAttribute("id", "bs_boxsplah");
    e.style.display = '';
    e.innerHTML = strHTML;
    elem.appendChild(e);
}

var bs_div_sfondo_height = 0;


bsShow = function(url, title, params) {

    var bs_tipo = 0;


    var urlString = /\.jpg|\.jpeg|\.png|\.gif|\.html|\.htm|\.php|\.cfm|\.asp|\.aspx|\.jsp|\.jst|\.rb|\.rhtml|\.txt/g;

    var urlType = url.match(urlString);
    bs_tipo = -1;

    if (params['type']) {
        bs_tipo = parseInt(params['type']);
    } else if (urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif') {
        bs_tipo = 1;
    } else if (url.indexOf("#") != -1) {
        bs_tipo = 2;
    } else if (urlType == '.htm' || urlType == '.html' || urlType == '.php' ||
			 urlType == '.asp' || urlType == '.aspx' || urlType == '.jsp' ||
			 urlType == '.jst' || urlType == '.rb' || urlType == '.txt' || urlType == '.rhtml' ||
			 urlType == '.cfm') {
        bs_tipo = 3;
    } else {
        bsHide();
        return false;
    }

    bs_tipo = parseInt(bs_tipo);

    var bs_finestra = getElem('bs_div_finestra');
    var bs_barra = getElem('bs_div_barra');
    var bs_contenuto = getElem('bs_div_contenuto');

    var bs_titolo = getElem('bs_div_titolo');
    if (title != "") { bs_titolo.innerHTML = title; } else { bs_titolo.innerHTML = "&nbsp;"; }


    switch (bs_tipo) {

        case 0:

            var strHTML = "";

            if (params['height']) { bs_finestra.style.height = params['height'] + 'px'; }
            else { bs_finestra.style.height = bs_height_def; }

            if (params['width']) { bs_finestra.style.width = params['width'] + 'px'; }
            else { bs_finestra.style.width = bs_width_def; }

            bs_finestra.style.display = "";
            bs_finestra.style.visibility = "hidden";
            posToCenter(bs_finestra);

            var SizeFrm = new getElementSize(bs_finestra);
            var SizeBar = new getElementSize(bs_barra);

            bs_finestra.style.visibility = "visible";
            strHTML += "<iframe id=\"bs_iframe\" src=\"" + url + "\" ";
            strHTML += "  marginwidth=\"0\" marginheight=\"0\" frameborder=\"0\" vspace=\"0\" hspace=\"0\" ";
            strHTML += " style=\"width:100%; height:" + (SizeFrm.height - SizeBar.height - 4) + "px; \"></iframe>";
            bsContenutoSet(strHTML, "hidden");

            break;

        case 1:

            bsAttesaShow();
            imgPreloader = new Image();

            imgPreloader.onload = function() {
                imgPreloader = resizeImageToScreen(imgPreloader);
                bsAttesaHide();

                var strHTML = "<img name=\"bs_image\" src=\"" + url + "\" style=\"width:" + imgPreloader.width + "px;height:" + imgPreloader.height + "px;border:0;cursor:hand;\"/>";

                if (loadCancelled == false) {

                    bs_finestra.style.display = "";

                    var SizeBar = new getElementSize(bs_barra);

                    bs_finestra.style.height = (imgPreloader.height + SizeBar.height + 2) + 'px';
                    bs_finestra.style.width = (imgPreloader.width + 4) + 'px';

                    bs_finestra.style.visibility = "hidden";
                    posToCenter(bs_finestra);
                    bs_finestra.style.visibility = "visible";

                    bsContenutoSet(strHTML, "hidden");

                }

            }

            loadCancelled = false;
            imgPreloader.src = url;

            break;

        case 2:

            var strHTML = "";


            if (params['height']) { bs_finestra.style.height = params['height'] + 'px'; }
            else { bs_finestra.style.height = bs_height_def; }

            if (params['width']) { bs_finestra.style.width = params['width'] + 'px'; }
            else { bs_finestra.style.width = bs_width_def; }


            bs_finestra.style.display = "";
            bs_finestra.style.visibility = "hidden";
            posToCenter(bs_finestra);
            bs_finestra.style.visibility = "visible";

            getElem('bs_div_contenuto').style.overflow = "auto";

            var elemSrcId = url.substr(url.indexOf("#") + 1, 1000);

            var elemSrc = getElem(elemSrcId);

            if (elemSrc) { strHTML = elemSrc.innerHTML; }

            bsContenutoSet(strHTML, "auto");

            break;

        case 3:

            bsAttesaShow();
            http.open('get', url, true);

            http.onreadystatechange = function() {
                if (http.readyState == 4) {
                    bsAttesaHide();

                    if (params['height']) { bs_finestra.style.height = params['height'] + 'px'; }
                    else { bs_finestra.style.height = bs_height_def; }

                    if (params['width']) { bs_finestra.style.width = params['width'] + 'px'; }
                    else { bs_finestra.style.width = bs_width_def; }

                    bs_finestra.style.display = "";
                    bs_finestra.style.visibility = "hidden";
                    posToCenter(bs_finestra);
                    bs_finestra.style.visibility = "visible";
                    getElem('bs_div_contenuto').style.overflow = "auto";

                    var response = http.responseText;
                    bsContenutoSet(response, "auto");

                }
            }

            http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
            http.send(null);
            break;

        default:

    }


    bs_finestra.style.opacity = 0;
    bs_finestra.style.filter = 'alpha(opacity=0)';
    var step_opacita = 10;

    for (var i = 0; i <= step_opacita; i++) { setTimeout("setOpacity('bs_div_finestra'," + i + ")", 30 * i); }

    getElem("bs_div_sfondo").onclick = function() { bsHide(); }
    if (bs_tipo == 2 || bs_tipo == 3) {
        bs_finestra.onclick = null;
        getElem("bs_div_sfondo").onclick = null;
        getElem("bs_div_chiudi_link").onclick = function() { bsHide(); }
    } else {
        bs_finestra.onclick = bsHide;
        getElem("bs_div_chiudi_link").onclick = null;
    }

    return true;
}

/********************************************************/
bsRiposiziona = function() {
	
	var bs_finestra = getElem('bs_div_finestra');
	var bs_sfondo = getElem('bs_div_sfondo');
	var pagesize = new getPageSize();
	var scrollPos = new getScrollPos();
	var ua = navigator.userAgent;

	if(ua.indexOf("MSIE ") != -1) {bs_sfondo.style.width = pagesize.width+'px';} 
	// else {bs_sfondo.style.width = pagesize.width-20+'px';} 

	if(ua.indexOf("Opera/9") != -1) {bs_sfondo.style.height = document.body.scrollHeight+'px';}
	else {bs_sfondo.style.height = pagesize.height+scrollPos.scrollY+'px';}
	
	// alternative 1
	//bs_sfondo.style.height = document.body.scrollHeight+50+'px';	
	
	posToCenter(bs_finestra);
	
}

bsHide = function() {
	bsSfondoHide();
	var bs_finestra = getElem('bs_div_finestra');
	bs_finestra.style.display = "none";

	bsContenutoClear();
	window.onscroll = null;
	
}

/********************************************************/

bsContenutoSet = function(str,ovrf) {
	bsContenutoClear();
	var e = getElem('bs_div_contenuto');
	e.style.overflow = ovrf;
	e.innerHTML = str;
	
}

bsContenutoClear = function() {
	var e = getElem('bs_div_contenuto');
	e.innerHTML = "";

}

/********************************************************/
/********************************************************/
BoxSplash = function(url, title, par) {


	if (bs_inizializzato == false) {
    	bsInizializza(document.getElementsByTagName("body")[0]); 
		bs_inizializzato = true;
	}
	if (title == null) {
		title = ""
	}
	if (par == null) {
		par = ""
	}
	
	//if(this.target != "") {url = this.target} 
	var params = parseQuery(par);	
	if(bsShow(url,title,params)) {
		bsSfondoShow();
		window.onscroll = bsRiposiziona;
		window.onresize = bsRiposiziona;
	}
	return false;
};
/********************************************************/
// JavaScript Document
function tabcontrol(idcontenitore, contenitoredefault, evento) {

    this.usatab = function(tabdasettare) {
        this.nasconditutto()
        if (this.tabinuso != null)
            this.tabinuso.className = ""
        if (tabdasettare.getAttribute("rel"))
            document.getElementById(tabdasettare.getAttribute("rel")).style.display = "block"
        tabdasettare.className = "current"
        this.tabinuso = tabdasettare
    },

  this.nasconditutto = function() {
      for (var i = 0; i < this.tabItems.length; i++)
          if (this.tabItems[i].getAttribute("rel"))
          document.getElementById(this.tabItems[i].getAttribute("rel")).style.display = "none"
  },

  this.prossimo = function() {
      var idef = -1
      for (var i = 0; i < this.tabItems.length; i++)
          if (this.tabItems[i].getAttribute("rel"))
          if (this.tabItems[i] == this.tabinuso) { idef = i }
      idef++
      if (idef >= this.tabItems.length) { idef = 0 }
      if (idef < this.tabItems.length) {
          this.usatab(this.tabItems[idef])
      }
  },

  this.init = function() {
      this.tabItems = document.getElementById(idcontenitore).getElementsByTagName("li")
      for (var i = 0; i < this.tabItems.length; i++) {
          if (i == contenitoredefault) {
              this.tabItems[i].className = "current"
              this.usatab(this.tabItems[i])
          }
          if (evento == "onmouseover") {
              this.tabItems[i].onmouseover = function() { self.usatab(this) }
          } else {
              this.tabItems[i].onclick = function() { self.usatab(this) }
          }
      }
  }

    var self = this;
    this.tabinuso = null;
    this.tabItems = [];
    this.init();
}


