//UTILITY
function Alert(msg){
	window.status=msg;
}
function GetFileNameWithoutExtension(filename){
	idx = filename.lastIndexOf('.');
	return filename.substring(0,idx);
}
function GetFileName(filename){
	idx = filename.lastIndexOf('/');
	filename = filename.substring(idx+1);
	if(filename.indexOf('#')>-1) filename = filename.substring(0,filename.indexOf('#'));
	if(filename.indexOf('?')>-1) filename = filename.substring(0,filename.indexOf('?'));
	if(filename.indexOf('&')>-1) filename = filename.substring(0,filename.indexOf('&'));
	
	return filename;
}
function GetFileExtension(filename){
	idx = filename.lastIndexOf('.');
	return filename.substring(idx);
}
function GetFilePath(filename){
	idx = filename.lastIndexOf('/');
	return (filename.substring(0,idx) + '/');
}

function getSize( dimension) {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
	//Non-IE
	myWidth = window.innerWidth;
	myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
	//IE 6+ in 'standards compliant mode'
	myWidth = document.documentElement.clientWidth;
	myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
	//IE 4 compatible
	myWidth = document.body.clientWidth;
	myHeight = document.body.clientHeight;
  }
	if(dimension=="w")
		return myWidth;
	else
		return myHeight;
}
function pageY(element) {
	  var curTop = 0;
	  if (document.getElementById || document.all) {
		while (element.offsetParent) {
		  curTop += element.offsetTop;
		  element = element.offsetParent;
		}
	  }
	  return curTop;
}
function pageX(element) {
	  var curTop = 0;
	  if (document.getElementById || document.all) {
		while (element.offsetParent) {
		  curTop += element.offsetLeft;
		  element = element.offsetParent;
		}
	  }
	  return curTop;
}

// *** FINE UTILITY

// ********************* Inizio strumenti geoArea
	var geoAreaImages;
	var geoAreaImagesAlt;

	function saveImgData(imgObj,pos){
		geoAreaImages[pos]      = imgObj.src;
		geoAreaImagesAlt[pos]   = imgObj.getAttribute('alt').toLowerCase();
		if(geoAreaImagesAlt[pos]=='')
		{ 
		    changeOpac(90,imgObj);
		    imgObj.style.background = 'white';
		}else 
		    resetImage(imgObj);
	}
	function changeOpac(opacity, object) { 
        object.style.opacity = (opacity / 100); 
        object.style.MozOpacity = (opacity / 100); 
        object.style.KhtmlOpacity = (opacity / 100); 
        object.style.filter = "alpha(opacity=" + opacity + ")"; 
    } 
	function resetImage(obj){
	    if(obj.getAttribute('alt')=='')return;
	    changeOpac(40,obj);
	    obj.style.cursor = 'hand';
	    obj.style.background = 'white';
//	    return;
//		obj.src = "../Contents/images/Icone/px.gif";
//		obj.style.width  = "62px";
//		obj.style.height = "62px";
	}
	function showRelatedImage(obj,text){
		objs = document.getElementById('_geoImgArea').getElementsByTagName('img');
		for(i=0;i<objs.length;i++){
			// collego gli eventi ai link
			if(objs[i].getAttribute('alt').toLowerCase()==text){
				//objs[i].src = geoAreaImages[i];
				changeOpac(100,objs[i]);
			}
			else
				resetImage(objs[i]);
		}
	}
	function setLinkColor(obj,active){
		obj.style.color =  (active)?"#EC7225":"#7C6E64";
	}
	function navigateLinkUrl(obj){
		text = (obj.getAttribute('alt').toLowerCase());
		objs = document.getElementById('_geoLinkArea').getElementsByTagName('a');
		for(i=0;i<objs.length;i++){
			if( objs[i].firstChild.nodeValue.toLowerCase() == text ){
				location.href =  objs[i].getAttribute('href');
				break;
			}
		}
	}
	function showRelatedText(obj,text){
		objs = document.getElementById('_geoLinkArea').getElementsByTagName('a');
		for(i=0;i<objs.length;i++){
			if( objs[i].firstChild.nodeValue.toLowerCase() == text ){
				setLinkColor(objs[i], true);
				for(var _i=0;_i<geoAreaImagesAlt.length;_i++) if(geoAreaImagesAlt[_i]==text){
				    changeOpac(100,obj);
				    //obj.src = geoAreaImages[_i];
				}
			}else
				setLinkColor(objs[i], false);
		}
	}
	function intProductArea(){
	    objs = document.getElementById('_geoImgArea').getElementsByTagName('img');
		if(objs.length>0){
		    geoAreaImages       = new Array(objs.length);
		    geoAreaImagesAlt    = new Array(objs.length);
		}
		for(i=0;i<objs.length;i++){
			saveImgData(objs[i],i);
			var imgAltToSearch = objs[i].getAttribute('alt').toLowerCase();
			if(imgAltToSearch=="") continue;
			
			objs[i].onmouseover = function () {showRelatedText(this,this.getAttribute('alt').toLowerCase());}
			objs[i].onmouseout = function () {resetImage(this);showRelatedText(null,'');}
			objs[i].onclick = function () {navigateLinkUrl(this);}
		}

		objs = document.getElementById('_geoLinkArea').getElementsByTagName('a');
		for(i=0;i<objs.length;i++){
			var imgAltToSearch = objs[i].firstChild.nodeValue.toLowerCase();
			if(imgAltToSearch=="") continue;
			objs[i].onmouseover = function () {showRelatedImage(this,this.firstChild.nodeValue.toLowerCase());setLinkColor(this,true);}
			objs[i].onmouseout = function () {showRelatedImage(this,"***");setLinkColor(this,false);}
			
			setLinkColor(objs[i],false);
		}
	}
	function showImageFromThumb(obj){
	    var filename = GetFileName(obj.src);
	    idx = GetFileNameWithoutExtension(filename).lastIndexOf('_');
	    filename = filename.substring(0,idx) + GetFileExtension(filename);
	    document.getElementById('targetImg').src = (GetFilePath(obj.src) + filename);
	}
	function showImageFromThumbText(objStr){
	    var filename = GetFileName(objStr);
	    idx = GetFileNameWithoutExtension(filename).lastIndexOf('_');
	    filename = filename.substring(0,idx) + GetFileExtension(filename);
	    document.getElementById('targetImg').src = (GetFilePath(objStr) + filename);
	}
	
	function showTextFromThumb(obj){
	   
	    var num = GetFileNameWithoutExtension(GetFileName(obj.src)).substring(0,2);
	    selDiv = document.getElementById('_geoContent' + num);
	    if(selDiv!=null){
	        for(i=0; i<10;i++){
	            tDiv = document.getElementById('_geoContent' + ((i>9)?i:'0'+i) );
	            if(tDiv!=null) tDiv.style.display = 'none';
	        }
	        selDiv.style.display = 'block';
	    }
	}
	
	function intImageArea(){
	    // l'intera area deve essere circondata da 'geoImageGallery'
	    //l'area attiva deve esserre circondata da '_geoImgArea'
	    // l'immagine grance deve avere id 'targetImg'
	    objs = document.getElementById('_geoImgArea').getElementsByTagName('img');
	    var found = false;
	    for(i=0;i<objs.length;i++){
	        if(objs[i].id=='targetImg') continue;
	        if(!found){ showImageFromThumb(objs[i]); found=true;}
			changeOpac(40,objs[i]);
	        objs[i].style.cursor = 'hand';
	        objs[i].style.background = 'white';
			objs[i].onclick = function () {showImageFromThumb(this);showTextFromThumb(this);}
			objs[i].onmouseover = function () {changeOpac(100,this);}
			objs[i].onmouseout = function () {changeOpac(40,this);}
		}
	}
	function intGeoArea(){
		if(document.getElementById('geoArea') != null) intProductArea();
		if(document.getElementById('geoImageGallery') != null) intImageArea();
	}
	
	function switchAlbumPane(pane){
	    if(document.getElementById('album01')!=null) document.getElementById('album01').style.display = 'none';
	    if(document.getElementById('album02')!=null) document.getElementById('album02').style.display = 'none';
	    if(document.getElementById('album03')!=null) document.getElementById('album03').style.display = 'none';
	    
	    if(document.getElementById(pane)!=null)document.getElementById(pane).style.display = 'block';
	    /*
		var panetoshow = (pane=='album01')?2:1;
		document.getElementById('album01').style.display = (panetoshow==2)?'block':'none';
		document.getElementById('album02').style.display = (panetoshow==1)?'block':'none';
		return false;
		*/
	}
// ****************** fine strumenti geoArea
	
function rollImg(sender,s){
		// chiamato solamente se c'è un'immagine nel link	
		cImg = sender.getElementsByTagName('img')[0];
		if( cImg.tagName == null || cImg.tagName.toLowerCase() != 'img') return;
		idx = cImg.src.lastIndexOf('/');
		cImageFile = cImg.src.substring(idx+1);
		
		ext = GetFileExtension(cImageFile);
		fileNameWithoutExtension = GetFileNameWithoutExtension(cImageFile);
		if(s){
			if(fileNameWithoutExtension.lastIndexOf('_')==fileNameWithoutExtension.length-1) return;
			cImg.src = ( cImg.src.substring(0, cImg.src.lastIndexOf('/') +1) + fileNameWithoutExtension + "_" + ext );
		}else{
			if(fileNameWithoutExtension.lastIndexOf('_')!=fileNameWithoutExtension.length-1) return;			
			cImg.src = ( cImg.src.substring(0, cImg.src.lastIndexOf('/') +1) + fileNameWithoutExtension.substring(0,fileNameWithoutExtension.length-1) + ext );
		}
	}
	function roll(sender,s){
		if(sender.tagName.toLowerCase() == 'a'){
			//sender.className = s?'mover':'mout';
			rollImg(sender,s)
		}
		else{
			sender.firstChild.className = s?'mover':'mout';
		}
	}
	function show2Level(sender,s){
		if(typeof(sender)=='string') sender = document.getElementById(sender);
		var UL_tag = sender;
		do{
		    UL_tag = UL_tag.parentNode;	
		}while(UL_tag.tagName.toLowerCase()!='ul');
        
        var objs = UL_tag.getElementsByTagName('a');
        for(i=0;i<objs.length;i++){
            roll(objs[i],(objs[i]==sender));
        }
	}
	function show1Level(sender,s){
		if(typeof(sender)=='string') sender = document.getElementById(sender);
		var UL_tag = sender;
		var LI_tag;
		do{
		    UL_tag = UL_tag.parentNode;	
		    if(UL_tag.tagName.toLowerCase()=='li')  LI_tag = UL_tag; 
		}while(UL_tag.tagName.toLowerCase()!='ul');
		
        for(i=0;i<UL_tag.childNodes.length;i++){
            if(UL_tag.childNodes[i].tagName == null) continue;
            if(UL_tag.childNodes[i]==LI_tag){
                
                UL_tag.childNodes[i].getElementsByTagName('ul')[0].style.display = 'block';
                roll(UL_tag.childNodes[i].firstChild,true);
            }else{
                UL_tag.childNodes[i].getElementsByTagName('ul')[0].style.display = 'none';
                roll(UL_tag.childNodes[i].firstChild,false);
            }
        }
	}
	var _timeoutID;
	var _currentSenderId;
	function ShowMenu(sender,s, level){
		clearTimeout(_timeoutID);
		if(typeof(sender)=='string') sender = document.getElementById(sender);
		if( _currentSenderId !=null && _currentSenderId != sender.id && sender.id.indexOf(_currentSenderId)!=0 ) hideAll(sender);
		_currentSenderId = sender.id;
		if(s){ 
		    if(level==0) show1Level(sender,s);
			else show2Level(sender,s)
		}
	}
	function hideAll(sender){
	    if(typeof(sender)=='string') sender = document.getElementById(sender);
		if(_currentSenderId!=null) roll( document.getElementById(_currentSenderId),false);
		var objs = document.getElementById('controlId').getElementsByTagName('ul');

		for(i=0;i<objs.length;i++){
			if(objs[i].tagName.toLowerCase() == 'ul'){
				if(sender!=null && sender.id.indexOf(objs[i].parentNode.firstChild.id)==0) continue; 
				rollImg(objs[i].parentNode.firstChild,false);
				objs[i].style.display = 'none';
			}
		}
	}
	function resetMenu(){
	    _currentSenderId=null;
		_timeoutID = setTimeout("hideAll();intMenu();",2000);
	}
	
	var showGeopietraMenu = true;
	function intMenuPos(){
		// POSIZIONE
		if(document.getElementById('controlId')==null) return;
		
		var _anchor = document.getElementById('menuAnchor');
		var _pagemargins = 10;
		_w = 0; _y = 0
		if(_anchor.offsetHeight){
			_y = _anchor.offsetHeight;
			_x = _anchor.offsetWidth;
		}
		else{
			_y = _anchor.style.pixelHeight;
			_x = _anchor.style.pixelWidth;
		}

		if(typeof window.addEventListener != 'undefined'){
			document.getElementById('controlId').style.top = (pageY(_anchor) + _y + 0) + "px";
			document.getElementById('controlId').style.left = (pageX(_anchor) + _x + 0) + "px";
		}
		else{ 
			document.getElementById('controlId').style.top = pageY(_anchor) + _y ;
			document.getElementById('controlId').style.left = pageX(_anchor) + _x ;
		}
		
		if(showGeopietraMenu) document.getElementById('controlId').style.display = 'block';
	}
	var $currentSelectedPageFile;
	
	function intMenu(){
		// APERTURA
		if(document.getElementById('controlId')==null) return;
		filename = GetFileName( ($currentSelectedPageFile!=null && $currentSelectedPageFile.length>0)?$currentSelectedPageFile:location.href ).toLowerCase() ;
		
		objs = document.getElementById('controlId').getElementsByTagName('a');
		for(i=0;i<objs.length;i++){
			if( GetFileName(objs[i].getAttribute('href')).toLowerCase().indexOf(filename)==0){ 
				var _elemArray = (objs[i].id.split('$'));
				_elem = '';
				for( ii = 0; ii < _elemArray.length; ii++){
					if(ii==0)
					    ShowMenu( (_elem + _elemArray[ii]),true,0);
					else
					     ShowMenu( (_elem + _elemArray[ii]),true);
					_elem += _elemArray [ii] + '$';
				}
				break;
			}
		}
	}
	
	function cmsGoBack(){
	    history.back();
	}
	

function SetEventListener(){
	if (typeof window.addEventListener != 'undefined')
	{
		window.addEventListener("load", intMenuPos, false);
		window.addEventListener("load", intMenu, false);
		window.addEventListener("resize", intMenuPos, false);
		window.addEventListener("load", intGeoArea, false);
		
		
	}
	else if (typeof document.addEventListener != 'undefined')
	{
		document.addEventListener("load", intMenuPos, false);
		document.addEventListener("load", intMenu, false);
		document.addEventListener("resize", intMenuPos, false);
		document.addEventListener("load", intGeoArea, false);
		
		
	}
	else if (typeof window.attachEvent != 'undefined')
	{
		window.attachEvent("onload", intMenu);
		window.attachEvent("onload", intMenuPos);
		window.attachEvent("onresize", intMenuPos);
		window.attachEvent("onload", intGeoArea);
		
		
	}
	else
		window.alert('Failed to attach an Event Listener\n\n Please Report');
}
SetEventListener();

//$CMSPageBreadCrumb
