// Code by Andrea Moi (IUX) - Mind srl - http://wwmind.com 

// COMMON JS CODE

var browserVer=parseInt(navigator.appVersion);
var Win=navigator.userAgent.indexOf("Win")!=-1;	
var InternetExplorer=navigator.userAgent.indexOf("MSIE")!=-1;
var	IE4=((typeof document.all!="undefined") && (browserVer >= 4))?1:0;
var NetscapeNavigator=navigator.appName.indexOf("Netscape")!=-1;
var	NS4=(typeof document.layers!="undefined")?1:0;
var NS6=navigator.userAgent.indexOf("Gecko")!=-1;
var Gecko=navigator.userAgent.indexOf("Gecko")!=-1;
var Safari=navigator.userAgent.indexOf("Safari")!=-1;
var Opera=navigator.userAgent.indexOf("Opera")!=-1;
var	ver4=(NS4||IE4||NS6)?1:0;

var rootPath="";	// settato da applicazione
var langPath="";	// settato da applicazione

// get element by ID (with browser check)
function getObj(objID) {
	if (!document.getElementById)	return null;	// not compatible
	//else
	return document.getElementById(objID);
}

// show and hide DIV
function alternateShow(divToShow,divToHide) {

	if (divToHide!=null&&divToHide.style!=null) {	// hide
		divToHide.style.display="none";
		if (Opera)		divToHide.style.visibility="hidden";	// aggiro baco background menu di Opera
	}
	if (divToShow!=null&&divToShow.style!=null) {	// show
		divToShow.style.display="block";
		if (Opera)		divToShow.style.visibility="visible";	// aggiro baco background menu di Opera
	}
}

// show or hide a object
function switchBox(obj,show)	{
	if (!obj)	return;

	if (show)	obj.style.display = "block";	// show
	else		obj.style.display = "none";		// hide

	if (Opera)	{	// aggiro baco background menu di Opera
		if (show)	divToShow.style.visibility="visible";	// show
		else		divToHide.style.visibility="hidden";		// hide
	}
}

// check a object visibility
function isVisible(obj)	{
	return (obj&&obj.style.display!="hidden"&&obj.style.display!="none");
}

// toggle a object
function toggleObj(obj)	{
	if (!obj)	return;
	if (isVisible(obj))		switchObj(obj,false);	// hide
	else					switchObj(obj,true);	// show
}

// show or hide page select field (IE bug with float map)
var selectFieldList=null;
function switchSelectField (show)	{

	if (!InternetExplorer||!floatMapOpen)	return;
	var s;

	if (show)	{	// mostro field
		if (!selectFieldList||selectFieldList.length<1)	return;
		
		// show stored fields
		for (s=0;s<selectFieldList.length;s++)	selectFieldList[s].style.visibility="visible";
		
	} else {	// nascondo field
		if (!document.getElementsByTagName)	return;		// funzione non supportata
	
		// se non e' gia' stato fatto, costruisco lista dei select della pagina
		if (!selectFieldList)	{	
		
			// prendo array dei select presenti nella pagina
			var selList=document.getElementsByTagName("select");
			if (selList.length<1)	return;	// nessun select trovato

			// variabili di appoggio
			var sLeft,sRight,sTop,sBottom,mLeft,mRight,mTop,mBottom,objParent;
			
			// calcolo gli offset della mappa aperto rispetto al body
			mLeft = floatMapOpen.offsetLeft;
			mTop = floatMapOpen.offsetTop;
			objParent = floatMapOpen.offsetParent;
			while (objParent&&objParent.tagName.toUpperCase()!="BODY") {	// scorro tutti gli oggetti parent
				mLeft += objParent.offsetLeft;
				mTop += objParent.offsetTop;
				objParent = objParent.offsetParent;
			}
			// calcolo larghezza e aggiungo bordo di sicurezza
			mRight=mLeft+floatMapOpen.clientWidth+10;
			mBottom=mTop+floatMapOpen.clientHeight+10;
			mLeft-=10;
			mTop-=10;

			// creo array globale elementi
			selectFieldList=new Array();	
			
			// loop elements
			for (s=0;s<selList.length;s++)	{
			
				if (!selList[s].offsetParent)	continue;
			
				// calcolo gli offset del select rispetto al body
				sLeft = selList[s].offsetLeft;
				sTop = selList[s].offsetTop;
				objParent = selList[s].offsetParent;
				while (objParent&&objParent.tagName.toUpperCase()!="BODY") {	// scorro tutti gli oggetti parent
					sLeft += objParent.offsetLeft;
					sTop += objParent.offsetTop;
					objParent = objParent.offsetParent;
				}
				// calcolo larghezza e aggiungo bordo di sicurezza
				sRight=sLeft+selList[s].clientWidth+10;
				sBottom=sTop+selList[s].clientHeight+10;
				sLeft-=10;
				sTop-=10;
				
				//alert("menu  = "+mLeft+" , "+mTop+" x "+mRight+" , "+mBottom +"\n\n"+selList[s].name+" = "+sLeft+" , "+sTop+" x "+sRight+" , "+sBottom);				
				
				// controllo incrocio box
				if (sLeft>mRight||sTop>mBottom)	continue;
				if (sRight<mLeft||sBottom<mTop)	continue;

				// save
				selectFieldList[selectFieldList.length]=selList[s];
			}
		}
		if (!selectFieldList||selectFieldList.length<1)	return;			// no element found
		
		// hide fields
		for (s=0;s<selectFieldList.length;s++)		selectFieldList[s].style.visibility="hidden";
	}
}


// switch map
var floatMapOpen=null;
var flashMap=null;
function switchMap(autoTogle,openMap)	{

	// controllo per versioni non compatibili
	/*if (InternetExplorer&&!Win)	{
		self.location.href=langPath+"mappa.php";	// pagina mappa
		return;
	}*/
	
	if (!document.getElementById)	return;	// not compatible
	
	// get object (first time only)
	if (!floatMapOpen)		floatMapOpen=getObj("floatMapOpenDiv");
	if (!flashMap)			flashMap=getObj("theMap");
	if (!floatMapOpen||!flashMap)		return;

	
	// check new state
	var currentShow=isVisible(floatMapOpen);
	if (autoTogle)	openMap=!currentShow;
	else			if (openMap==currentShow)	return;
		
	if (!openMap)	{		// close Map

		try {
			flashMap.StopPlay();
		} catch (e) { }

		switchBox(floatMapOpen,false);
		// visualizzo select nascosti precedentemente
		if (InternetExplorer)	switchSelectField(true);
		
	} else { 	// open Map
		switchBox(floatMapOpen,true);
		// nascondo select della pagina
		if (InternetExplorer)	switchSelectField(false);
		
		// aggiro bug Safari (rinfresco oggetto flash)
		if (Safari)		floatMapOpen.innerHTML=floatMapOpen.innerHTML;
		
		// restart movie
		try {
			flashMap.Rewind();
			flashMap.Play();
		} catch (e) { }
		
	}
	
}



// select: autosubmit
function autoSubmitSelect (selObj,emptyAlso)	{
	var v=selObj[selObj.selectedIndex].value;
	if (v!=""||emptyAlso)	selObj.form.submit();
}


// open a custom windows (full parameters)
function customPopUp(url,x,y,name,param,focusOnPopUp,focusOnWindow)		{

	// dimensioni
	var winSize="";
	if (x>0)	winSize+="width="+x+",";
	if (y>0)	winSize+="height="+y+",";
	
	// new windows
	var siteWindowVar=open(url,name,winSize+"directories=no,"+param);
	
	if (siteWindowVar&&focusOnPopUp)	siteWindowVar.focus();	// popup in primo piano
	if (siteWindowVar&&focusOnWindow)	self.focus();			// finestra corrente in primo piano
	
	// il return serve per controllare eventuali popup bloccati o javascript non abilitato
	return (siteWindowVar==null);
}

// open a windows (custom parameters)
function newWinCust(url,wname,wparam)		{
	var siteWindowVar=open(url,wname,"directories=no,"+wparam);
	siteWindowVar.focus();
}

// open a new popup window
function apri(url)		{
	// new windows
	newWinCust(url,"popupwin","toolbar=no,status=no,menubar=no,scrollbars=yes,resizable=no,location=no,width=550,height=320");
}

// open a new window (+ size)
function apriXY(url,x,y)		{
	// new windows
	newWinCust(url,"popupwin"+x+"X"+y,"toolbar=no,status=no,menubar=no,scrollbars=no,resizable=yes,location=no,width="+x+",height="+y);
}


// set a cookies
function setCookie(name,value,expiredays) {
	var exdate=new Date();
	exdate.setDate(expiredays);
	document.cookie=name+"="+escape(value)+((expiredays==null) ? "" : ";expires="+exdate)+";path=/";
}

// get a cookies
function getCookie(name)	{
	if (document.cookie.length<1)	return null;

	var start=document.cookie.indexOf(name+"=");
	if (start==-1)	return null;

	start=start+name.length+1;
	var end=document.cookie.indexOf(";",start);
	if (end==-1) end=document.cookie.length;
	return unescape(document.cookie.substring(start,end));
}


// check country
function checkCountry ()	{
	
	// read line argument
	var argstring=window.location.search;
	var country="";
	if (argstring.charAt(0)=='?')	{
		var cpos=argstring.indexOf("country=");
		if (cpos>0)	 {
			var c=argstring.charAt(cpos+8);	// first char
			if (c!=""&&c!="&")	{
				country=c;
				c=argstring.charAt(cpos+9);	// second char
				if (c!=""&&c!="&")	country+=c;
				country=country.toUpperCase();
			}
		}
	}

	// read cookies
	var countryCookies=getCookie("country");
	if (countryCookies)									countryCookies=countryCookies.toUpperCase();
	if (country=="")									country=countryCookies;				// use country cookies
	else if (country!=countryCookies&&country!="XX")	setCookie("country",country,30);	// save country

	// reset cookies
	if (country=="XX")	{
		setCookie("country","",1);
		country="";
	}
				
	return country;
}


// get lang parameters  language
function getLangParam ()	{
	
	// read line argument
	var argstring=window.location.search;
	var lang="";
	if (argstring.charAt(0)=='?')	{
		var cpos=argstring.indexOf("lang=");
		if (cpos>0)	 {
			var c=argstring.charAt(cpos+5);	// first char
			if (c!=""&&c!="&")	{
				lang=c;
				c=argstring.charAt(cpos+6);	// second char
				if (c!=""&&c!="&")	lang+=c;
				lang=lang.toLowerCase();
			}
		}
	}
	return lang;
}

// get language dir
function getLanguageDir(lang,country)	{

	// check language
	if (lang!="it"&&lang!="en"&&lang!="de")		{
		if (country=="IT")							lang="it";
		else if (country=="DE"||country=="AT")		lang="de";
		else										lang="en";
	}

	return lang+"/";
}


// print current page
var oldPrintHTML="";
function printPage()	{
	var button=getObj("printButton");
	if (document.body.className=="print")	{	// standard mode
		document.body.className="";
		if (button)	{
			if (oldPrintHTML=="")	button.innerHTML="Print";
			else					button.innerHTML=oldPrintHTML;
			oldPrintHTML="";
		}
	} else {	// print page
		document.body.className="print";
		if (button)	{
			if (oldPrintHTML=="")	oldPrintHTML=button.innerHTML;
			button.innerHTML="&laquo; Back";
		}
		self.print();
	}
}

// make option tag
function makeOptionTag(val,str,def,defStyle)	{
	if (val==def)		return "<option value=\""+val+"\" selected style=\""+defStyle+"\">"+str+"</option>";
	else				return "<option value=\""+val+"\" style=\""+defStyle+"\">"+str+"</option>";
}

// select per lingua home
function printCountrySelectBox (lang,curCountry)	{

	document.writeln("<select size='1' id='lang' name='lang' onchange='autoChangeLanguage(this,false)' title='Select a country'>");
	if (curCountry=="")	document.writeln(makeOptionTag("","Select a country...",curCountry,"color:#999999"));
	document.writeln(makeOptionTag("EN","English [ international ]",curCountry,"color:#666666;"));
	document.writeln(makeOptionTag("AT","Austria",curCountry,""));
	document.writeln(makeOptionTag("BA","Bosnia Herzegovina",curCountry,""));
	document.writeln(makeOptionTag("BG","Bulgaria",curCountry,""));
	document.writeln(makeOptionTag("HR","Croatia",curCountry,""));
	document.writeln(makeOptionTag("CZ","Czech Republic",curCountry,""));
	document.writeln(makeOptionTag("EE","Estonia",curCountry,""));
	document.writeln(makeOptionTag("DE","Germany",curCountry,""));
	document.writeln(makeOptionTag("HU","Hungary",curCountry,""));
	document.writeln(makeOptionTag("IT","Italy",curCountry,""));
	document.writeln(makeOptionTag("LV","Latvia",curCountry,""));
	document.writeln(makeOptionTag("LT","Lithuania",curCountry,""));
	document.writeln(makeOptionTag("PL","Poland",curCountry,""));
	document.writeln(makeOptionTag("RO","Romania",curCountry,""));
	document.writeln(makeOptionTag("RU","Russian Federation",curCountry,""));
	document.writeln(makeOptionTag("CS","Serbia Montenegro",curCountry,""));
	document.writeln(makeOptionTag("SK","Slovakia",curCountry,""));
	document.writeln(makeOptionTag("SI","Slovenia",curCountry,""));
	document.writeln(makeOptionTag("TR","Turkey",curCountry,""));
	document.writeln(makeOptionTag("UA","Ukraine",curCountry,""));

	document.writeln("</select>");
}

// show corrent language block
var oldLang=null;
function showLanguage(lang)	{

	if (lang=="")	lang="EN";
	var langBlock=getObj("lang"+lang);

	if (!langBlock)	langBlock=getObj("langEN");		// uso default
	
	if (!langBlock||langBlock==oldLang)	return;
	
	alternateShow(langBlock,oldLang);	// switch
	oldLang=langBlock;
}

// select: change language
function autoChangeLanguage (selObj,emptyAlso)	{
	var v=selObj[selObj.selectedIndex].value;
	if (v!=""||emptyAlso)	showLanguage(v);
}




/***********************************************
* DOM Image Rollover II- By Adam Smith (http://www.codevendor.com)
* Script featured on and available at Dynamic Drive (http://www.dynamicdrive.com)
* Keep this notice intact for usage please
***********************************************/

// Make Variables----------------------
var imgMouseOverHolder = new Array();
var imgMouseDownHolder = new Array();

// precarico immagini
function imgRollEffectPreload(imgTags){

	var newmouseover, newmouseout, newmouseup, newmousedown, oldmouseover, oldmouseout, oldmouseup, oldmousedown
	var AL = imgMouseOverHolder.length + 1;
	for (var i = 0; i < imgTags.length; i++) {

		if (imgTags[i].getAttribute('rolldown')||imgTags[i].getAttribute('rollover')) {
	
			newmouseover = null; newmouseout = null; newmouseup = null;	newmousedown = null; oldmouseover = null; oldmouseout = null; oldmouseup = null; oldmousedown = null

			// Store src Images------------------
			if (imgTags[i].getAttribute('rollover')) {imgMouseOverHolder[AL] = new Image(); imgMouseOverHolder[AL].src = imgTags[i].getAttribute('rollover');}
			if (imgTags[i].getAttribute('rolldown')) {imgMouseDownHolder[AL] = new Image(); imgMouseDownHolder[AL].src = imgTags[i].getAttribute('rolldown');}
			// Make backups----------------------
			if (imgTags[i].src) {imgTags[i].setAttribute("oldsrc", imgTags[i].src);}
			if (imgTags[i].getAttribute('rollover')) {
			
				// Make Mouse over--------------------
				if (imgTags[i].onmouseover) {imgTags[i].oldmouseover = imgTags[i].onmouseover; newmouseover = function (){this.src=this.getAttribute("rollover"); this.oldmouseover();}}
				else 						{newmouseover = function (){this.src=this.getAttribute("rollover");}}
				imgTags[i].onmouseover = newmouseover;
				// Make Mouse out--------------------
				if (imgTags[i].onmouseout)	{imgTags[i].oldmouseout = imgTags[i].onmouseout; newmouseout = function (){this.src=this.getAttribute("oldsrc"); this.oldmouseout();}}
				else 						{newmouseout = function (){this.src=this.getAttribute("oldsrc");}}
				imgTags[i].onmouseout = newmouseout;
			}
			
			if (imgTags[i].getAttribute('rolldown')) {	
			
				// Make Mouse Down---------------------
				if (imgTags[i].onmousedown) {imgTags[i].oldmousedown = imgTags[i].onmousedown; newmousedown = function (){this.src=this.getAttribute("rolldown"); this.oldmousedown();}}
				else 						{newmousedown = function (){this.src=this.getAttribute("rolldown");}}
				imgTags[i].onmousedown = newmousedown;

				if (imgTags[i].getAttribute('rollover')) {
						
					// Make Mouse up-----------------------
					if (imgTags[i].onmouseup) 	{imgTags[i].oldmouseup = imgTags[i].onmouseup; newmouseup = function (){this.src=this.getAttribute("rollover"); this.oldmouseup();}}
					else 						{newmouseup = function (){this.src=this.getAttribute("rollover");}}
					imgTags[i].onmouseup = newmouseup;
				} else {
								
					//Make Mouse up-------------------------
					if (imgTags[i].onmouseup) 	{imgTags[i].oldmouseup = imgTags[i].onmouseup; newmouseup = function (){this.src=this.getAttribute("oldsrc"); this.oldmouseup();}}
					else 						{newmouseup = function (){this.src=this.getAttribute("oldsrc");}}
					imgTags[i].onmouseup = newmouseup;
					// Make Mouse out--------------------
					if (imgTags[i].onmouseout) 	{imgTags[i].oldmouseout = imgTags[i].onmouseout; newmouseout = function (){this.src=this.getAttribute("oldsrc"); this.oldmouseout();}}
					else 						{newmouseout = function (){this.src=this.getAttribute("oldsrc");}}
					imgTags[i].onmouseout = newmouseout;
				}
			}
		}
	}
}
// funzione per rollover
function imgRollEffectLoadSrc() {

	// Check to see if document element----
	if (!document.getElementById) return;

	// Declare variables--------------------
	var imgTags = document.getElementsByTagName('IMG'); 
	//var imgTags2 = document.getElementsByTagName('INPUT');   // For image type submit buttons 

	// Preload Images-----------------------
	imgRollEffectPreload(imgTags);
	//imgRollEffectPreload(imgTags2);  // For image type submit buttons 
}

// aggiungo a gestore eventi
if (window.addEventListener)		window.addEventListener("load", imgRollEffectLoadSrc, false);
else if (window.attachEvent)		window.attachEvent("onload", imgRollEffectLoadSrc);
else if (document.getElementById)	window.onload=imgRollEffectLoadSrc;