﻿
var dom = ( document.getElementById ) ? true : false;
var ns5 = ( ( navigator.userAgent.indexOf("Gecko") > -1 ) && dom ) ? true: false;
var ie5 = ( ( navigator.userAgent.indexOf("MSIE") > -1 ) && dom ) ? true : false;
var ns4 = ( document.layers && !dom ) ? true : false;
var ie4 = ( document.all && !dom ) ? true : false;
var nodyn = ( !ns5 && !ns4 && !ie4 && !ie5 ) ? true : false;
var origwidth, origheight;

if (ns4)
{
	origwidth = window.innerwidth;
	origheight = window.innerheight;
	window.onresize = function() { if ( window.innerwidth != origwidth || window.innerheight != origheight ) history.go(0); }
}
if ( nodyn ) { event = "nope" }



var gv__objDivToPos;
var gv__BoolMouseOverObjDivToPos = false;
var gv__StrHiddenCssClassName = '';

var gv__intClickedLinkWidth;
var gv__intClickedLinkHeight;

var gv__intDivToPosWidth;
var gv__intDivToPosHeight;

var gv__intDivToPosClipWidth;
var gv__intDivToPosClipHeight;

var gv__intDivToPosClipWidthDelta;
var gv__intDivToPosClipHeightDelta;

var gv__BoolShowToRight;
var gv__BoolShowToBottom;


function showHideObject( strObjectID, objClickedLink, boolSetVisible, strVisibleCssClassName, strHiddenCssClassName, boolShowToRight, boolShowToBottom )
{
	//alert( "showHideObject - gv__BoolMouseOverObjDivToPos: [" + gv__BoolMouseOverObjDivToPos + "]" );
	//alert( "showHideObject - boolSetVisible: [" + boolSetVisible + "]" );

	if ( gv__BoolMouseOverObjDivToPos ) 			// mostro solo se mouse over link ma out div to show / nascondo solo se mouse out sia da link che da div mostrato !!!
		return;
		
	gv__objDivToPos = MM_findObj( strObjectID );
	
	//alert( "showHideObject - gv__objDivToPos.id: [" + gv__objDivToPos.id + "]" );
	//alert( "showHideObject - ! gv__objDivToPos || ! gv__objDivToPos.className: [" + ! ( gv__objDivToPos || ! gv__objDivToPos.className ) + "]" );
	
	if ( ! gv__objDivToPos || ! gv__objDivToPos.className ) return;
	
	gv__StrHiddenCssClassName = strHiddenCssClassName;
	gv__BoolShowToRight = boolShowToRight;
	gv__BoolShowToBottom = boolShowToBottom;

	
	if ( boolSetVisible )
	{
		//try
		//{
			gv__objDivToPos.className = strVisibleCssClassName;
			//gv__objDivToPos = divToShowHide;
			//sendAlert( "showHideObject - objClickedLink.firstChild: [" + objClickedLink.firstChild + "]" );
			setObjectPos( objClickedLink.firstChild );
		//}
		//catch ( e )
		//{
			//sendAlert( "e: [" + e + "]" );
			//gv__objDivToPos.className = strVisibleCssClassName;
			//gv__objDivToPos.style.clip = "rect(auto auto auto auto)";
		//}
	}
	else
	{
		gv__objDivToPos.className = strHiddenCssClassName;
	}
}


function objDivToPosMouseOver_Out( boolOver, objDivToPosParam )
{
	//alert( "objDivToPosMouseOver_Out - boolOver: [" + boolOver + "]" );
	//alert( "objDivToPosMouseOver_Out - objDivToPosParam.parentNode: [" + objDivToPosParam.parentNode + "]" );

	gv__BoolMouseOverObjDivToPos = boolOver;
	
	if ( ! gv__BoolMouseOverObjDivToPos )
	{
		if ( objDivToPosParam.parentElement )
		{
			objDivToPosParam.parentElement.className = gv__StrHiddenCssClassName;
		}
		if ( objDivToPosParam.parentNode )
		{
			objDivToPosParam.parentNode.className = gv__StrHiddenCssClassName;
		}
	}
}

	/*
	gv__objDivToPos.style.clip = "rect(auto auto 0px auto)";

	gv__objDivToPos.style.left = ( linkCoords[ 0 ] - 4) + 'px';
	
	var top = ( linkCoords[ 1 ] + 31 );
	var divBottom = ( top + gv__intDivToPosHeight );
	
	var winH = getWindowSizeArrXY()[ 1 ];
	var winScroll_Y = getWindowScrollArrXY()[ 1 ];
	*/
	//sendAlert( "divBottom: [" + divBottom + "]" );
	//sendAlert( "winH: [" + winH + "]" );
	//sendAlert( "winScroll_Y: [" + winScroll_Y + "]" );
	//sendAlert( "divBottom > ( winH + winScroll_Y ): [" + ( divBottom > ( winH + winScroll_Y ) ) + "]" );
	/*
	if ( divBottom > ( winH + winScroll_Y ) ) // se non ci sta sotto lo metto sopra...
	{
		top = Math.max( linkCoords[ 1 ] - gv__intDivToPosHeight, 0 ); // non negativa ...
	}
	
	gv__objDivToPos.style.top = top + 'px';
	*/
	//sendAlert( "gv__objDivToPos.style.clip: [" + gv__objDivToPos.style.clip + "]" );
	/*
	sendAlert( "gv__intDivToPosHeight: [" + gv__intDivToPosHeight + "]" );
	sendAlert( "gv__objDivToPos.style.height: [" + gv__objDivToPos.style.height + "]" );
	sendAlert( "gv__objDivToPos.offsetHeight: [" + gv__objDivToPos.offsetHeight + "]" );
	*/

function setObjectPos( objClickedLink )
{
	var linkCoords = findObjPos( objClickedLink );
	
	gv__intClickedLinkWidth = getObjectSizeArrXY( objClickedLink, '' )[ 0 ];
	gv__intClickedLinkHeight = getObjectSizeArrXY( objClickedLink, '' )[ 1 ];
	
	gv__intDivToPosWidth = getObjectSizeArrXY( gv__objDivToPos, '' )[ 0 ];
	gv__intDivToPosHeight = getObjectSizeArrXY( gv__objDivToPos, '' )[ 1 ];
	
	gv__intDivToPosClipWidthDelta = 1000;
	gv__intDivToPosClipHeightDelta = gv__intDivToPosClipWidthDelta * gv__intDivToPosHeight / gv__intDivToPosWidth;
	/*
	sendAlert( 'gv__intDivToPosClipWidthDelta: ' + gv__intDivToPosClipWidthDelta );
	sendAlert( 'gv__intDivToPosClipHeightDelta: ' + gv__intDivToPosClipHeightDelta );
	*/
	//sendAlert( "gv__intDivToPosHeight: [" + gv__intDivToPosHeight + "]" ); //  ----------- rect(top right bottom left)
	/*
	//sendAlert( "setObjectPos - gv__intClickedLinkWidth: [" + gv__intClickedLinkWidth + "]" );
	sendAlert( "setObjectPos - gv__intClickedLinkHeight: [" + gv__intClickedLinkHeight + "]" );
	//sendAlert( "setObjectPos - gv__intDivToPosWidth: [" + gv__intDivToPosWidth + "]" );
	sendAlert( "setObjectPos - gv__intDivToPosHeight: [" + gv__intDivToPosHeight + "]" );
	*/
	
	//gv__intDivToPosClipWidth = gv__intDivToPosWidth;
	//gv__intDivToPosClipHeight = 0;
	
	if ( gv__BoolShowToRight )
	{
		gv__objDivToPos.style.left = ( linkCoords[ 0 ] - 2 ) + 'px';
		
		if ( gv__BoolShowToBottom ) // 														right - bottom
		{
			//gv__objDivToPos.style.clip = "rect(auto 0px 0px auto)";
			/*var top = ( linkCoords[ 1 ] + 31 );
			var divBottom = ( top + gv__intDivToPosHeight );*/
			gv__intDivToPosClipWidth = gv__intClickedLinkWidth;
			gv__intDivToPosClipHeight = gv__intClickedLinkHeight;
			
			gv__objDivToPos.style.top = ( linkCoords[ 1 ] - 2 ) + 'px';
			gv__objDivToPos.style.clip = "rect(auto " + ( gv__intDivToPosClipWidth ) + "px " + ( gv__intDivToPosClipHeight ) + "px auto)";
			//sendAlert( "setObjectPos - right - bottom" );
		}
		else // if ( NOT gv__BoolShowToBottom ) // 								right - top
		{
			gv__intDivToPosClipWidth = gv__intClickedLinkWidth;
			gv__intDivToPosClipHeight = gv__intDivToPosHeight - gv__intClickedLinkHeight;
			
			gv__objDivToPos.style.top = ( linkCoords[ 1 ] + 2 - ( gv__intDivToPosHeight - gv__intClickedLinkHeight ) ) + 'px';
			gv__objDivToPos.style.clip = "rect(" + ( gv__intDivToPosClipHeight ) + "px " + ( gv__intDivToPosClipWidth ) + "px auto auto)";
			//sendAlert( "setObjectPos - right - top" );
		}
	}
	else // if ( NOT gv__BoolShowToRight )
	{
		gv__objDivToPos.style.left = ( linkCoords[ 0 ] + 2 - ( gv__intDivToPosWidth - gv__intClickedLinkWidth ) ) + 'px';
		
		if ( gv__BoolShowToBottom ) // 														left - bottom
		{
			gv__intDivToPosClipWidth = gv__intDivToPosWidth - gv__intClickedLinkWidth;
			gv__intDivToPosClipHeight = gv__intClickedLinkHeight;
			
			gv__objDivToPos.style.top = ( linkCoords[ 1 ] - 2 ) + 'px';
			gv__objDivToPos.style.clip = "rect(auto auto " + ( gv__intDivToPosClipHeight ) + "px " + ( gv__intDivToPosClipWidth ) + "px)";
			//sendAlert( "setObjectPos - left - bottom" );
		}
		else // if ( NOT gv__BoolShowToBottom ) // 								left - top
		{
			gv__intDivToPosClipWidth = gv__intDivToPosWidth - gv__intClickedLinkWidth;
			gv__intDivToPosClipHeight = gv__intDivToPosHeight - gv__intClickedLinkHeight;
			
			gv__objDivToPos.style.top = ( linkCoords[ 1 ] + 2 - ( gv__intDivToPosHeight - gv__intClickedLinkHeight ) ) + 'px';
			gv__objDivToPos.style.clip = "rect(" + ( gv__intDivToPosClipHeight ) + "px auto auto " + ( gv__intDivToPosClipWidth ) + "px)";
			//sendAlert( "setObjectPos - left - top" );
		}
	}
	/*
	sendAlert( "setObjectPos - clickedLink Y: [" + linkCoords[ 1 ] + "]" );
	sendAlert( "setObjectPos - gv__objDivToPos.style.top: [" + gv__objDivToPos.style.top + "]" );
	*/
	openDiv();
}


function openDiv()
{
	//sendAlert( "openDiv - gv__objDivToPos: [" + gv__objDivToPos + "]" );
	//alert( "openDiv - gv__objDivToPos.style.clip: [" + gv__objDivToPos.style.clip + "]" );
	
	if ( gv__BoolShowToRight )
	{
		if ( gv__BoolShowToBottom ) // 														right - bottom
		{
			if ( gv__intDivToPosClipHeight < gv__intDivToPosHeight || gv__intDivToPosClipWidth < gv__intDivToPosWidth ) // + 2 ( 2 x i bordi ) !!!
			{ 
				openClipToRightBottom();
			} 
		}
		else // if ( NOT gv__BoolShowToBottom ) // 								right - top
		{
			if ( gv__intDivToPosClipHeight > 0 || gv__intDivToPosClipWidth < gv__intDivToPosWidth ) // + 2 ( 2 x i bordi ) !!!
			{ 
				openClipToRightTop();
			} 
		}
	}
	else // if ( NOT gv__BoolShowToRight )
	{
		if ( gv__BoolShowToBottom ) // 														left - bottom
		{
			if ( gv__intDivToPosClipHeight < gv__intDivToPosHeight || gv__intDivToPosClipWidth > 0 ) // + 2 ( 2 x i bordi ) !!!
			{ 
				openClipToLeftBottom();
			} 
		}
		else // if ( NOT gv__BoolShowToBottom ) // 								left - top
		{
			if ( gv__intDivToPosClipHeight > 0 || gv__intDivToPosClipWidth > 0 ) // + 2 ( 2 x i bordi ) !!!
			{ 
				openClipToLeftTop();
			} 
		}
	}
} 


function openClipToRightBottom()
{
	openClipToRight();
	openClipToBottom();
	
	gv__objDivToPos.style.clip = "rect(auto " + gv__intDivToPosClipWidth + "px " + Math.round( gv__intDivToPosClipHeight ) + "px auto)";
	setTimeout( "openDiv()", 10 );
}

function openClipToRightTop()
{
	openClipToRight();
	openClipToTop();
	
	gv__objDivToPos.style.clip = "rect(" + Math.round( gv__intDivToPosClipHeight ) + "px " + gv__intDivToPosClipWidth + "px auto auto)";
	setTimeout( "openDiv()", 10 );
}

function openClipToLeftBottom()
{
	openClipToLeft();
	openClipToBottom();
	
	gv__objDivToPos.style.clip = "rect(auto auto " + Math.round( gv__intDivToPosClipHeight ) + "px " + ( gv__intDivToPosClipWidth ) + "px)";
	setTimeout( "openDiv()", 10 );
}

function openClipToLeftTop()
{
	openClipToLeft();
	openClipToTop();
	
	gv__objDivToPos.style.clip = "rect(" + Math.round( gv__intDivToPosClipHeight ) + "px auto auto " + ( gv__intDivToPosClipWidth ) + "px)";
	setTimeout( "openDiv()", 10 );
}


function openClipToRight()
{
	gv__intDivToPosClipWidth += gv__intDivToPosClipWidthDelta;
	gv__intDivToPosClipWidth = Math.min( gv__intDivToPosClipWidth, gv__intDivToPosWidth );
}

function openClipToLeft()
{
	gv__intDivToPosClipWidth -= gv__intDivToPosClipWidthDelta;
	gv__intDivToPosClipWidth = Math.max( gv__intDivToPosClipWidth, 0 );
}

function openClipToBottom()
{
	gv__intDivToPosClipHeight += gv__intDivToPosClipHeightDelta;
	gv__intDivToPosClipHeight = Math.min( gv__intDivToPosClipHeight, gv__intDivToPosHeight ); // round xche' height lo moltiplico x il coefficiente height / width !!!
}

function openClipToTop()
{
	gv__intDivToPosClipHeight -= gv__intDivToPosClipHeightDelta;
	gv__intDivToPosClipHeight = Math.max( gv__intDivToPosClipHeight, 0 ); 								// round xche' height lo moltiplico x il coefficiente height / width !!!
}


function sendAlert( strMsg )
{
	//alert( strMsg );
}


function findObjPos( obj )
{
	var curleft = curtop = 0;
	if ( obj.offsetParent )
	{
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while ( obj = obj.offsetParent )
		{
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
		return [ curleft, curtop ];
	}
	else
	{
		return [ obj.x, obj.y ];
	}
}


function getObjectSizeArrXY( obj, id )
{
	if ( ! obj )
		obj = document.getElementById( id );
		
	if ( ! obj )
		return [ 0, 0 ];
		
	var w = obj.offsetWidth;
	var h = obj.offsetHeight;
	//alert ('The image size is '+w+'*'+h);
	return [ w, h ];
}


/*function getImgSize( id )
{
	var pic = document.getElementById( id );
	var h = pic.offsetHeight;
	var w = pic.offsetWidth;
	//alert ('The image size is '+w+'*'+h);
}*/


function getWindowSizeArrXY()
{
  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;
  }
  
  //window.sendAlert( 'Width = ' + myWidth );
  //window.sendAlert( 'Height = ' + myHeight );
  
  return [ myWidth, myHeight ];
}


function getWindowScrollArrXY()
{
  var scrOfX = 0, scrOfY = 0;
  
  if( typeof( window.pageYOffset ) == 'number' )
  {
		//Netscape compliant
		scrOfY = window.pageYOffset;
		scrOfX = window.pageXOffset;
  }
  else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) )
  {
		//DOM compliant
		scrOfY = document.body.scrollTop;
		scrOfX = document.body.scrollLeft;
  }
  else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) )
  {
		//IE6 standards compliant mode
		scrOfY = document.documentElement.scrollTop;
		scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}


function MM_findObj(n, d)
{ //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_changeProp(objName,x,theProp,theValue) { //v6.0
  var obj = MM_findObj(objName);
  if (obj && (theProp.indexOf("style.")==-1 || obj.style)){
    if (theValue == true || theValue == false)
      eval("obj."+theProp+"="+theValue);
    else eval("obj."+theProp+"='"+theValue+"'");
  }
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
