// Batt CrossBrowser Dyn_Lib. last updated: 25052001// **********************************************************************************************************************// All the code, the GUI and the interactivity solutions are (C) 1999/2001 by Battini Digital Solutions.// You are NOT ALLOWED to modify, copy, reuse, distribute or change this code and scripts without our written permission.// All scripts src, work steps, GUI use type variables, and documentation are also (c) protected by // TM inc, doc. 1999.0602/2001 and by PTT. Assurance, Doc. 150100UI1999/2001.// For more information you can contact our company,// email contact to dbattin@tin.it.// **********************************************************************************************************************// This Lib supports IE4/4.5/5 win/mac, N4.5/476up// Mozilla M17up / Netscape 6/601// note: the new Mozilla Gen. have a bad crossBrowser // dhtml performances, flikering scrolls and slow dhtml animation, // 'settimeout' based actions and animations decrease brws // performance more fast than ever.// supports IE 4, 5 and 5.5 on windows// supports IE 4.5 and IE 5 on macOS// supports NN 4.5, 4.7 on windows and macOS//// some code in this first 130 lines,// and a lot of inspiration tips, born // from sebastien chevrel cLib, a very // very cool 'Dynamic_Man'isNav=false;isW3C=false;isExp=false;isOpera=false;isNOT=false;isMac=false;mouseX=0;mouseY=0;// Detect browser and define pre/suf-fixesbrowser=navigator.appName;version=navigator.appVersion;Vmajor=parseInt(navigator.appVersion);Vminor=parseFloat(navigator.appVersion);if (browser=="Netscape") {if (Vmajor==4){ isNav=true; pre='layers.'; suf='';	window.captureEvents(Event.RESIZE);	// handle the resize bug on NN	}	else if (Vmajor>=5)	isW3C=true;	else isNOT=true;	}else if (browser=="Microsoft Internet Explorer") { if ( version.indexOf('MSIE 5.0; Macintosh;') != -1 ){		isExp=true; pre='all.'; suf='.style';		}	// IE 4 to 5.5 return 4 as the version	else if ( (Vmajor==4) ) { isExp=true; pre='all.'; suf='.style';}	else isNOT=true;	}else if (browser=="Opera") {		// Opera 5 will be detected with 'userAgent' type for a right check	if (Vmajor==4) isOpera=true;		else isNOT=true;		}if (version.indexOf('Mac') != -1) isMac=true;if (isNav) document.captureEvents(Event.RESIZE);window.onresize=resizeH;function Writelayer(layer,code) {	if (isNav) { eval('document.'+layer+'.document.open()');				 eval('document.'+layer+'.document.write(code)'); eval('document.'+layer+'.document.close()');				}	else if (isExp) { eval('document.all.'+layer+'.innerHTML=code');			}	else if (isW3C) { obj=document.getElementById(layer);			// this is a non-compliant netscape hack supported by Gecko/Mozilla, writing markup in a layer			obj.innerHTML=code; // this is the DOM way, but only support TextNodes in Mozilla			/* while (obj.firstChild) obj.removeChild(obj.firstChild); node=document.createTextNode(code); obj.appendChild(node); */	    	}	  	else if (isOpera) { obj=document.getElementById(layer); obj.style.innerHTML=code;}	    }function getscrollX(window) { if (document.layers || (document.getElementById && !document.all)){ return eval(window+'.pageXOffset');}		else if (document.all){ return eval(window+'.document.body.scrollLeft');}		}function getscrollY(window) { if (document.layers || (document.getElementById && !document.all)){ return eval(window+'.pageYOffset');}		else if (document.all){ return eval(window+'.document.body.scrollTop');}		}// Batt full debug for hoverFloat FX, getscroll windowXY add for work right needed from IE4/45/5mac and N6/601function mousemoveH(evt) {       	if (isNav) { mouseX=evt.pageX; mouseY=evt.pageY;	    		} 	else if (isExp) { mouseX=window.event.clientX+getscrollX('top'); mouseY=window.event.clientY+getscrollY('top');				}	else if (isW3C) { mouseX=evt.clientX+getscrollX('top'); mouseY=evt.clientY+getscrollY('top');				}	else if (isOpera) { mouseX=window.event.clientX; mouseY=window.event.clientY;			}  		return true;		}function startMouseCapture(handler) {	if (isNav) document.captureEvents(Event.MOUSEMOVE);	if (handler) document.onmousemove=handler;	else document.onmousemove=mousemoveH;	// if (isW3C) document.addEventListener(Event.MOUSEMOVE,mousemoveH,true);	}function resizeH(){ location.reload();	return false;	}function getwindowWidth() { if (isExp) { return document.body.clientWidth;}	else if (isNav || isW3C || isOpera) { return window.innerWidth;}	}function getwindowHeight() { if (isExp) { return document.body.clientHeight;}	else if (isNav || isW3C || isOpera) { return window.innerHeight;}	}// seb lib split code support end// ******************************************************// BATT EXTENDED DHTML CORE_LIB 4/01/01.// all Script Dev (C) Battini Digital Solutions 2000/2001// ******************************************************var popup;  // needed for 'win.moveTo' IE4mac fix         function openNewWind(theURL, setWidthWn, setHeightWn){		// screen/wind check goes here for IE, else can return a NaN error		WidthScreenXX = screen.availWidth;		HeightScreenYY = screen.availHeight;    winFeatures = ',toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=0,resizable=0';        // getFile=(getUrl||getUrl!="")?getUrl:(document.all || document.layers)?"about:blank":"about:blank";        set_width = (setWidthWn=="screenW") ? WidthScreenXX:setWidthWn;        set_height = (setHeightWn=="screenH") ? HeightScreenYY:setHeightWn;     posLeft = Math.round((WidthScreenXX)/2) - Math.round(set_width/2)-10;    posTop = Math.round((HeightScreenYY)/2) - Math.round(set_height/2)-10;    posStrg = "left=" + posLeft + ",top=" + posTop;    	// IE4mac vers, don't support 'left' and 'top' popup coords    ie4_mac_posLeft = posLeft+"px"; ie4_mac_posTop = posTop+"px";     moreall = winFeatures+","+posStrg;		popup=window.open(theURL,'popup','width='+set_width+',height='+set_height+','+moreall);		// if(!isW3C) { popup.focus(); } // N6 can return error with win focus		popup.focus();	if (isMac && document.all) { popup.moveTo(ie4_mac_posLeft,ie4_mac_posTop); }     	}var onlyoneTime = 0;var boxForNestedLyr;function getStyleObject(objectId, objeStyle, valType, boxForNestedLyr){		 boxForNestedLyr = boxForNestedLyr;if(document.getElementById && document.getElementById(objectId)){		  /* if(document.getElementById && document.getElementById(objectId) && !document.all){  		 // if (onlyoneTime==0){alert("is NS6 DOM"); onlyoneTime=1;}	  	 // if(!document.all){    // right DOM/W3C way for N6 e Co., but not IE	5mac		 // computed style def., not N4, not IE5mac, ok for last MOZbrws and N6	     var W3Cobj=document.getElementById(objectId);	     style=getComputedStyle(W3Cobj,null);	     // SEB ok computed style vs. style definition, are more better for moz and N6 gen. ok to parse 'px' out         if(valType=="valX"){ return parseInt(style.getPropertyValue('left'));}         if(valType=="valY"){ return parseInt(style.getPropertyValue('top'));}         if(valType=="valWd"){ return parseInt(style.getPropertyValue('width'));}         if(valType=="valHg"){ return parseInt(style.getPropertyValue('height'));}         if(valType=="valVis"){ return style.getPropertyValue('visibility'); }         if(valType=="valZx"){ return W3Cobj.style.zIndex;}		 if(valType=="valClip"){ return W3Cobj.style.clip;}  		 if(valType=="valClipT"){ return domGetClipT(W3Cobj); }  		 if(valType=="valClipR"){ return domGetClipR(W3Cobj); }  		 if(valType=="valClipB"){ return domGetClipB(W3Cobj); }  		 if(valType=="valClipL"){ return domGetClipL(W3Cobj); }         if(valType==0 && objeStyle==("sty"||1)){ return W3Cobj.style;}		 	else{ return W3Cobj; } }   		 if(document.getElementById && document.getElementById(objectId) && document.all){ */	var W3CIE5eN6obj=document.getElementById(objectId);        if(valType=="valX"){ return parseInt(W3CIE5eN6obj.offsetLeft);}    	if(valType=="valY"){ return parseInt(W3CIE5eN6obj.offsetTop);}    	if(valType=="valWd"){ return parseInt(W3CIE5eN6obj.offsetWidth);}    	if(valType=="valHg"){ return parseInt(W3CIE5eN6obj.offsetHeight);}		if(valType=="valVis"){ return W3CIE5eN6obj.style.visibility;}        if(valType=="valZx"){ return W3CIE5eN6obj.style.zIndex;}		if(valType=="valClip"){ return W3CIE5eN6obj.style.clip;}		if(valType=="valClipT"){ return domGetClipT(W3CIE5eN6obj); }  		if(valType=="valClipR"){ return domGetClipR(W3CIE5eN6obj); }  		if(valType=="valClipB"){ return domGetClipB(W3CIE5eN6obj); }  		if(valType=="valClipL"){ return domGetClipL(W3CIE5eN6obj); }    	if(valType==0 && objeStyle==("sty"||1)){ return W3CIE5eN6obj.style;}        	else{ return W3CIE5eN6obj;}        	}		//// var parentElmCtrlifExist =(document.layers)? menuTitObj.parentLayer.id : (document.all)?menuTitObj.parentElement.id : menuTitObj.parentNode.idif (document.all && document.all[objectId]) {	var objIE = document.all[objectId];      	if(valType=="valX"){ return objIE.style.pixelLeft;}      	if(valType=="valY"){ return objIE.style.pixelTop;}      	if(valType=="valWd"){ return objIE.clientWidth;}      	if(valType=="valHg"){ return objIE.clientHeight;}        if(valType=="valVis"){ return objIE.style.visibility;}        if(valType=="valZx"){ return objIE.style.zIndex;}      	if(valType=="valClip"){ return objIE.style.clip;}  		if(valType=="valClipT"){ return domGetClipT(objIE); }  		if(valType=="valClipR"){ return domGetClipR(objIE); }  		if(valType=="valClipB"){ return domGetClipB(objIE); }  		if(valType=="valClipL"){ return domGetClipL(objIE); }      		//// if(valType=="valWd"){ return objIE.pixelWidth;}    		// IE 4 way var2			//// if(valType=="valHg"){ return objIE.pixelHeight;}			//// if(valType=="valWd"){ return objIE.style.width;}   		// IE DOM way var2    			//// if(valType=="valHg"){ return objIE.style.height;}		if(valType==0 && objeStyle==("sty"||1)){ return objIE.style;}      		else{ return objIE;}      		}if (document.layers) {	 	// N4 Batt Upg. the lib now can find nested layers too     objNavTargLyr = document.layers[objectId];     objNavNestingBox = document.layers[boxForNestedLyr].document.layers[objectId];     getNS4ObjectsRef = (boxForNestedLyr == 0) ? objNavTargLyr : (boxForNestedLyr != 0) ? objNavNestingBox : nsAlertNoObjFound();  		/* // var2 nestedGetVal solution			if(valType=="valX" && boxForNestedLyr == 0){ return objNavTargLyr.left;}			else if(valType=="valX" && boxForNestedLyr != 0){ return objNavNestingBox.left;} */		if(valType=="valX"){ return getNS4ObjectsRef.left;}		if(valType=="valY"){ return getNS4ObjectsRef.top;}		if(valType=="valWd"){ return getNS4ObjectsRef.clip.width;}		if(valType=="valHg"){ return getNS4ObjectsRef.clip.height;}  			if(valType=="valWd2"){ return getNS4ObjectsRef.width;}			if(valType=="valHg2"){ return getNS4ObjectsRef.height;}  		if(valType=="valVis"){ return getNS4ObjectsRef.visibility;}		if(valType=="valZx"){ return getNS4ObjectsRef.zIndex;}		if(valType=="valClip"){   											// ns way    	 	var nsClip_strng;		 	var top = getNS4ObjectsRef.clip.top;		 	var right = getNS4ObjectsRef.clip.right;		 	var bottom = getNS4ObjectsRef.clip.bottom;		 	var left = getNS4ObjectsRef.clip.left;			nsClip_strng = "rect(" + top + "px, " + right + "px, " + bottom + "px, " + left + "px)";			return nsClip_strng; }		if(valType=="valClipT"){ return getNS4ObjectsRef.clip.top; }		if(valType=="valClipR"){ return getNS4ObjectsRef.clip.right; }		if(valType=="valClipB"){ return getNS4ObjectsRef.clip.bottom; }		if(valType=="valClipL"){ return getNS4ObjectsRef.clip.left; } 		if(valType==0 && boxForNestedLyr == 0){ return objNavTargLyr; }     // N4Nav have not style property			else if(valType==0 && boxForNestedLyr != 0){ return objNavNestingBox;}			}			else{		return false;		}	   }  // getStyleObject, now with full support for W3C/N6/601, IE4/5, NS4 and nestLyrfunction nsAlertNoObjFound(){ alert("Alert! Netscape 4.xx Object and Nested Object not found");}function clipAlertNoObjFound(){ alert("Alert! Obj for clip not found");}// CLIPPING EXTENSIONvar start_setclipstrng;var start_clipWd;var start_clipHgvar clipThisObj;     // for sty indxfunction SetDynamicClipObj(clipobjectId, clipTop, clipRight, clipBottom, clipLeft, clipBoxIfNestedLyr){        clipThisObj = (clipBoxIfNestedLyr && clipBoxIfNestedLyr != 0) ? getStyleObject(clipobjectId, 0, 0, clipBoxIfNestedLyr) : (clipBoxIfNestedLyr == 0) ? getStyleObject(clipobjectId, 0, 0, 0) : clipAlertNoObjFound();	if(clipThisObj && document.layers) {									// N4 way, no style prop		if (clipTop == null) clipTop = clipThisObj.clip.top;		if (clipRight == null) clipRight = clipThisObj.clip.right;		if (clipBottom == null) clipBottom = clipThisObj.clip.bottom;		if (clipLeft == null) clipLeft = clipThisObj.clip.left;		clipThisObj.clip.top = clipTop;		clipThisObj.clip.right = clipRight;		clipThisObj.clip.bottom = clipBottom;		clipThisObj.clip.left = clipLeft;	} else if(clipThisObj && !document.layers) {      						// DOM way, need style prop		if(clipThisObj.style.clip){			if (clipTop == null) clipTop = domGetClipT(clipThisObj);			if (clipRight == null) clipRight = domGetClipR(clipThisObj);			if (clipBottom == null) clipBottom = domGetClipB(clipThisObj);			if (clipLeft == null) clipLeft = domGetClipL(clipThisObj);    	clipstrng = "rect(" + clipTop + "px, " + clipRight + "px, " + clipBottom + "px, " + clipLeft + "px)";			clipThisObj.style.visibility = 'hidden';   						// ok fixed code for IE4/4.5 mac bug			clipThisObj.style.clip = clipstrng;			clipThisObj.style.visibility = 'visible';			} else {  // ie need a start clip setting else can return error for inline clip css also if clip exist				start_clipWd = (getwindowWidth()+getscrollX('top'));				start_clipHg = (getwindowHeight()+getscrollY('top'));				start_setclipstrng = "rect(0px, " + start_clipWd + "px, " + start_clipHg + "px, 0px)";				clipThisObj.style.visibility = 'hidden';   					// ok fixed code for IE4/4.5 mac clip display bug				clipThisObj.style.clip = start_setclipstrng;				clipThisObj.style.visibility = 'visible';				}		// window.status="[SET CLIP FUNCT :: clipThisObj.style.clip="+clipThisObj.style.clip+"::clipThisObj.id=:"+clipThisObj.id+":clipstrng=:"+clipstrng+"]";   		}  	  } // clipObject extensionfunction testClipSet1(){ SetDynamicClipObj('menuTestBOXdiv', 0, 180, 120, 0, 0);}function testClipSet2(){ SetDynamicClipObj('menuTestBOXdiv', 0, 33, 75, 0, 0);}    // convert string to valuefunction convert(strng) { var i = parseInt(strng);    return i;	}// get clipping value // clip_strgCval = (String(strgCval).search('%')>0? strgCval.substring(0,8):strgCval); function get_entry(refObj,indx) {		strng = refObj.style.clip;		// alert("GET ENTRY, refObj.id="+refObj.id+"::strng clip:="+strng);	if (strng.length > 0 && strng != "auto") {		strng = strng.slice(5,strng.length-1);		var entries = strng.split(" ");		} else {         var entries = new Array(5);	for (i = 0; i < entries.length; i++)         entries[i] = "auto";        } 						//yasdW>  if (indx == "top") {	if (entries[0] == "auto")            return 0;		else		   return convert(entries[0]);           }  else if (indx == "left") {	if (entries[3] == "auto") 		   return 0;		else		   return convert(entries[3]);		   }  else if (indx == "bottom"){	if (entries[2] == "auto") {		   return getStyleObject(refObj.id, "sty", "valHg", 0);           }		else		   return convert(entries[2]);              }  else if (indx == "right") {	if (entries[1] == "auto")	       return getStyleObject(refObj.id, "sty", "valWd", 0);		else		   return convert(entries[1]);		  }	    }// clip object on leftfunction domGetClipL(refObj) { return get_entry(refObj,"left");}// clip object on rightfunction domGetClipR(refObj) { return get_entry(refObj,"right");}// clip object at topfunction domGetClipT(refObj) { return get_entry(refObj,"top");}// clip object at bottomfunction domGetClipB(refObj) { return get_entry(refObj,"bottom");}function changeObjectVisibility(objectId, newVisibility, nestedLyr) {    var styleObject = (nestedLyr) ? getStyleObject(objectId, 'sty', 0, nestedLyr) : getStyleObject(objectId, 'sty', 0, 0) ; if(styleObject) {	styleObject.visibility = newVisibility;	return true;    } else {	return false;   }} // changeObjectVisibilityfunction moveObject(objectId, newXCoordinate, newYCoordinate, nestedLyrMover) {    // get a reference to the cross-browser style object and make sure the object exists, nested checks too	var styleObject = (nestedLyrMover) ? getStyleObject(objectId, 'sty', 0, nestedLyrMover) : getStyleObject(objectId, 'sty', 0, 0) ; if(styleObject) { 	styleObject.left = newXCoordinate;	styleObject.top = newYCoordinate; 	return true;    } else {	// we couldn't find the object, so we can't move it	return false;    }} // moveObjectfunction setObjZindex(objectId, newZindex, nestedLyr) {    var styleObject = (nestedLyr) ? getStyleObject(objectId, 'sty', 0, nestedLyr) : getStyleObject(objectId, 'sty', 0, 0) ; if(styleObject) {	styleObject.zIndex = newZindex;	return true;    } else {	return false;   }} // changeObjZindexfunction resizeObjects(resizeObjectId, newObjWidth, newObjHeight, resizeNestedLyr) { 	   var styleObject = (resizeNestedLyr) ? getStyleObject(resizeObjectId, 'sty', 0, resizeNestedLyr) : getStyleObject(resizeObjectId, 'sty', 0, 0) ; 	if(styleObject) { 	if(newObjWidth && newObjWidth != "null"){(document.layers) ? styleObject.clip.width = newObjWidth : styleObject.width = newObjWidth;		} 	if(newObjHeight && newObjHeight != "null"){(document.layers) ? styleObject.clip.height = newObjHeight : styleObject.height = newObjHeight;		}		return true;    	} else {	return false;    }} // batt resizeObjects// ******************************************************// * POPUP e CAPTIONS * apple dev_lib modify// ******************************************************// store variables to control where the popup will appear relative to the cursor positionvar xOffset = 30;var yOffset = 5;function showPopup (targetObjectId, eventObj, fixpos){  if(eventObj){	hideCurrentPopup();	// stop event from bubbling up any farther	eventObj.cancelBubble = true; if(fixpos && fixpos == 1 ){	var newXCoordinate = (eventObj.pageX)?eventObj.pageX + xOffset : eventObj.x + xOffset + ((document.body.scrollLeft)?document.body.scrollLeft:0);	var newYCoordinate = (eventObj.pageY)?eventObj.pageY + yOffset : eventObj.y + yOffset + ((document.body.scrollTop)?document.body.scrollTop:0);    } else{    var newXCoordinate = (eventObj.pageX)?eventObj.pageX + xOffset:eventObj.x + xOffset + ((document.body.scrollLeft)?document.body.scrollLeft:0);	var newYCoordinate = (eventObj.pageY)?eventObj.pageY + yOffset:eventObj.y + yOffset + ((document.body.scrollTop)?document.body.scrollTop:0);    }	moveObject(targetObjectId, newXCoordinate, newYCoordinate);	// and make it visible if(changeObjectVisibility(targetObjectId, 'visible')){	// store its Id on a globally-accessible object	window.currentlyVisiblePopup = targetObjectId;	return true;    }else{	// we couldn't show the popup	return false;}    }else{    // there was no event object, so we won't be able to position anything, so give up    return false;   }} // showPopupfunction hideCurrentPopup() {    // note: we've stored the currently-visible popup on the global object window.currentlyVisiblePopup    if(window.currentlyVisiblePopup) {	changeObjectVisibility(window.currentlyVisiblePopup, 'hidden');	window.currentlyVisiblePopup = false;    }} // hideCurrentPopup// **********************************************// hacks and workarounds * apple dev_lib modify// **********************************************// initialize hacks whenever the page loadswindow.onload = initializeHacks;// setup an event handler to hide popups for generic clicks on the documentdocument.onclick = hideCurrentPopup;function initializeHacks() { if(document.getElementById && !document.all){     fixBadAnimationTremorsAndSlowN6AnimationInoffsetObjsDiv(); // batt fix N6 bug     }    // this ugly little hack resizes a blank div to make sure you can click    // anywhere in the window for Mac MSIE 5 if ((navigator.appVersion.indexOf('MSIE 5') != -1) 	&& (navigator.platform.indexOf('Mac') != -1)	&& getStyleObject('blankDiv', 'sty', 0, 0)) {	window.onresize = explorerMacResizeFix;    }    resizeBlankDiv();    // this next function creates a placeholder object for older browsers    createFakeEventObj();}function createFakeEventObj() {    // create a fake event object for older browsers to avoid errors in function call    // when we need to pass the event object to functions    if (!window.event) {	window.event = false;    }} // createFakeEventObjfunction resizeBlankDiv() { }   /*    // resize blank placeholder div so IE 5 on mac will get all clicks in window    if ((navigator.appVersion.indexOf('MSIE 5') != -1) 	&& (navigator.platform.indexOf('Mac') != -1)	&& getStyleObject('blankDiv', 'sty', 0, 0)) {	getStyleObject('blankDiv', "sty", 0, 0).offsetWidth = document.body.clientWidth - 20;	getStyleObject('blankDiv', "sty", 0, 0).offsetHeight = document.body.clientHeight - 20;   }}*/function fixBadAnimationTremorsAndSlowN6AnimationInoffsetObjsDiv() {	// batt add N6/601 SlowAndFlykeringAnimation fix, Obj_Div Set way 	// (like a set of empty hidden frames in frameset, on left, and bottom) 	// for fix bad and slowly N6 anim. dysplay and flikering_tremor on wind borders.  if(document.getElementById && !document.all){	SetDynamicClipObj('fastFXN6debugFixTOP', -5,15020, 14, 0, 0);								// set large and long hide clipped layers for fix N6 bug	SetDynamicClipObj('fastFXN6debugFixLEFT', 0, 14, 3910, -5, 0);   }}function explorerMacResizeFix(){location.reload(false);}// *************************************// application-specific Master Functions// *************************************var startPointX = 100;var startPointY = 390; var endpointX = 500;var endpointY = 10;var stepmov = 2;var timerspeed = 200;function startpopPos(){         changeObjectVisibility('boxDiv9', 'visible');         stepx = Math.round((endpointX-startPointX)/stepmov);           stepy = Math.round((endpointY-startPointY)/stepmov);            (startPointX != endpointX) ? startPointX+=stepx:(startPointX == endpointX) ? null: null;            (startPointY != endpointY) ? startPointY+=stepy:(startPointY == endpointY) ? null: null;         /* objTit1 = getStyleObject('menuTitle1', 'sty', 0, 'boxDiv9');			(document.layers) ? objTit1.background.src = "imgmenu/bpop01.gif": objTit1.backgroundImage= "url(imgmenu/bpop01.gif)"; */            // start animation path            moveObject('boxDiv9', startPointX, startPointY);            // window.status='stX=['+startPointX+'] end X:500 - stY=['+startPointY+'] endY:10';      	if (startPointY != endpointY && startPointX != endpointX){           	battMenuIsReadyforHoverFX = 0;          	startMenuEnterAnim = setTimeout("startpopPos();", timerspeed);     		} else {           	battMenuIsReadyforHoverFX = 1;									          	// on/off ctrl for dragg/hover FX movs           	clearTimeout(startMenuEnterAnim);								          	// when animation ends stop this timer          	return;}          	}function testslidefunvt1(){slideMoveDiv('lizard1','T', 'R', 20, 1250, 20, 0);}function testslidefunvt2(){slideMoveDiv('lizard2','T', 'R', 20, null, 50, 0);}var endposX=0;var endposY=0;var movesliderObjre;var slideBoxifNestvar; var objdir1pre;var objdir2pre;    		var objisSliding = 0;var slideThisObjY = 0;var slideThisObjX = 0;var topvar = 0;var leftvar = 0;var stepvar = 0;// slideMoveDiv(movesliderObj, objdir1p:/'T'/'B'/, objdir2p:/'R'/'L'/, top, left, step, slideBoxifNest);function slideMoveDiv(movesliderObj, objdir1p, objdir2p, top, left, step, slideBoxifNest) {			slideThisObj = (slideBoxifNest) ? getStyleObject(movesliderObj, 'sty', 0, slideBoxifNest) : getStyleObject(movesliderObj, 'sty', 0, 0) ;			movesliderObjre = movesliderObj;        	slideBoxifNestvar = slideBoxifNest;        	objdir1pre = objdir1p;         	objdir2pre = objdir2p;        	leftvar = left;        	topvar = top;        	stepvar = step;        if (slideThisObj) {        	slideThisObjX = getStyleObject(movesliderObjre, 'sty', 'valX', slideBoxifNestvar);       		slideThisObjY = getStyleObject(movesliderObjre, 'sty', 'valY', slideBoxifNestvar);			objisSliding = 1;			objInMov = 1;		if (top == null) { top = slideThisObjY; endposY = 5;}        if (left == null) { left = slideThisObjX; endposX = 5;}          if (slideThisObjY > top && objdir1pre == "T") {                          		slideThisObjY -= step;                                slideThisObj.top = slideThisObjY;                                endposY = 1;                             if (slideThisObjY <= top || top == null) { endposY = 5; }                                } 		if (slideThisObjY < top && objdir1pre == "B") {    		                          		 slideThisObjY += step;                          		 // slideThisObjY = ((slideThisObjY *1)+ step);	// 2var fix for IE5 mac bug                          		 slideThisObj.top = slideThisObjY;                                 endposY = 2;                             if (slideThisObjY >= top || top == null) { endposY = 5; }								 } 		if (slideThisObjX > left && objdir2pre == "L") {    		                          		slideThisObjX -= step;                                slideThisObj.left = slideThisObjX;                                endposX = 3;                             if (slideThisObjX <= left || left == null ) { endposX = 5; }                                 } 		if (slideThisObjX < left && objdir2pre == "R") {                          		 slideThisObjX += step;                                 slideThisObj.left = slideThisObjX;                                 endposX = 4;		if (slideThisObjX >= left || left == null ) { endposX = 5; }                                 }                                 }			slideTimer = setTimeout('slideMoveDiv(movesliderObjre, objdir1pre, objdir2pre, '+top+', '+left+', '+step+', slideBoxifNestvar)',80);			// window.status='[obj='+movesliderObj+',obj1pre='+objdir1pre+',obj2pre='+objdir2pre+',dir1='+objdir1p+',dir2='+objdir2p+',y='+top+',x='+left+',stp='+step+',endX='+endposX+',endY='+endposY+']';		if (endposX == 5 && endposY == 5) { clearTimeout(slideTimer); refreshMMovCapturAndNewScrollObjZone('infoDiv', 'infoBoxDiv');            		// alert("movesliderYtop="+scrollmaxY+":scrollminX left="+scrollx);            		objisSliding = 0; objInMov = 0;}   					}var menuId;var menuIdcoords;var eventObj;var XlimitsWinWd_ReverseSubmenuX =0;var YlimitsWinHg_ReverseSubmenuY =0;var dyn_SubmenuPosX = 0;var dyn_SubmenuPosY = 0;var dyn_SubmenuPosX_maxX=0;var dyn_SubmenuPosY_maxY=0;////var dynaAddSpacerTo_dyn_SubmenuPosY_maxY = 0;var submenuLen = 0;var submenuLenforHideAll = 0;var menuNumber;  					// 1stlimit the hideall loop to one onlyvar menuNumberforHideAllLoops;  	// 2ndfor limit the hideall loop to one onlyfunction showMenu(menuNumber, eventObj, visibDisp, submenuLen) {					    menuNumberforHideAllLoops = menuNumber;     submenuLenforHideAll = submenuLen;     	// check window features	var Xwin_Width = (document.all)?document.body.clientWidth : innerWidth;	var Ywin_Height = (document.all)?document.body.clientHeight : innerHeight;	var winScrollX = getscrollX('top');	var winScrollY = getscrollY('top');       // get masterboxDiv9 features	var masterboxDiv9Obj = getStyleObject('boxDiv9', 0, 0, 0);	var masterboxDiv9 = getStyleObject('boxDiv9', 'sty', 0, 0);	var boxDiv9X = getStyleObject('boxDiv9', 'sty', "valX", 0);	var boxDiv9Y = getStyleObject('boxDiv9', 'sty', "valY", 0);	var boxDiv9width = getStyleObject('boxDiv9', 'sty', "valWd", 0);	var boxDiv9height = getStyleObject('boxDiv9', 'sty', "valHg", 0);     	// B check coords only the 1st header submenu field for WinDynPos definition	menuIdcoords = 'menu' + menuNumber +'sub'+1;	var subMenuCss = getStyleObject( menuIdcoords, 'sty', 0, 0);	var subMenuCssleft = getStyleObject( menuIdcoords, 'sty', "valX", 0);	var subMenuCsstop = getStyleObject( menuIdcoords, 'sty', "valY", 0);	var subMenuCsswidth = getStyleObject( menuIdcoords, 'sty', "valWd", 0);	var subMenuCssheight = (document.layers) ? 18 : getStyleObject( menuIdcoords, 'sty', "valHg", 0);   // fix N6 bug i get sub css Hg		// get menuTitleId features	var menuTitleId = 'menuTitle' + menuNumber;	var menuTitObj =  getStyleObject( menuTitleId, 0, 0, 'boxDiv9');	var menuTitle = getStyleObject( menuTitleId, 'sty', 0, 'boxDiv9');	var menuTitleleft = (document.layers) ? getStyleObject( menuTitleId, 'sty', "valX", 'boxDiv9') + boxDiv9X : (document.all) ? getStyleObject( menuTitleId, 'sty', "valX", 'boxDiv9') +boxDiv9X+6 : getStyleObject( menuTitleId, 'sty', "valX", 'boxDiv9');	var menuTitletop = (document.layers) ? getStyleObject( menuTitleId, 'sty', "valY", 'boxDiv9') + boxDiv9Y : (document.all) ? getStyleObject( menuTitleId, 'sty', "valY", 'boxDiv9') +boxDiv9Y : getStyleObject( menuTitleId, 'sty', "valY", 'boxDiv9');	var menuTitlewidth = getStyleObject( menuTitleId, 'sty', "valWd", 'boxDiv9');	var menuTitleheight = getStyleObject( menuTitleId, 'sty', "valHg", 'boxDiv9');		// reset all submenu off	hideAllMenus();		// batt dyn position in page	XlimitsWinWd_ReverseSubmenuX = (menuTitleleft+menuTitlewidth+subMenuCsswidth);	YlimitsWinHg_ReverseSubmenuY = (menuTitletop+(menuTitleheight-20)+(subMenuCssheight*submenuLen));  	dyn_SubmenuPosX = (XlimitsWinWd_ReverseSubmenuX >= (Xwin_Width+winScrollX)) ? ((document.all && document.getElementById)?menuTitleleft-subMenuCsswidth : (document.all && !document.getElementById)?menuTitleleft-8-subMenuCsswidth : menuTitleleft-subMenuCsswidth) : (document.all && !document.getElementById)?menuTitleleft+menuTitlewidth+2 : menuTitleleft+menuTitlewidth;		dyn_SubmenuPosX_maxX = (XlimitsWinWd_ReverseSubmenuX >= (Xwin_Width+winScrollX)) ? dyn_SubmenuPosX+12 : dyn_SubmenuPosX-38;  // add vars for acef menu arcuate   	dyn_SubmenuPosY = (YlimitsWinHg_ReverseSubmenuY >= (Ywin_Height+winScrollY)) ? ( (document.all && document.getElementById)?(menuTitletop+12+menuTitleheight-(subMenuCssheight*submenuLen)):(document.all && !document.getElementById)?(menuTitletop+4+menuTitleheight-(subMenuCssheight*submenuLen)) : (menuTitletop+menuTitleheight-(subMenuCssheight*submenuLen)) ) : ((document.all && !document.getElementById)?menuTitletop+4 : (document.all && document.getElementById)?menuTitletop+12 : menuTitletop+14);		dyn_SubmenuPosY_maxY = (YlimitsWinHg_ReverseSubmenuY >= (Ywin_Height+winScrollY)) ? dyn_SubmenuPosY : dyn_SubmenuPosY; 			//alert(menuTitletop+menuTitleheight-(subMenuCssheight*submenuLen)+"::"+menuTitletop+"::"+menuTitleheight+"::"+subMenuCssheight+":submenuLen:"+submenuLen);			//alert("SHOWMENUloop::"+menuId+"::"+ dyn_SubmenuPosY_maxY+":::"+dyn_SubmenuPosY+"::"+YlimitsWinHg_ReverseSubmenuY+"::(Ywin_Height+winScrollY)="+(Ywin_Height+winScrollY)); if(dragginGo != true){  	for(runshow=1; runshow <= submenuLen; runshow++){			// get all menuId objs to move, in array, for looping, checking and display dyn_submenu>		menuId = 'menu' + menuNumber +'sub'+ runshow;			// (document.layers) ? menuTitle.background.src = "imgmenu/bpop0"+menuNumber+"up.gif" : menuTitle.backgroundImage = "url(imgmenu/bpop0"+menuNumber+"up.gif)";			// (document.layers) ? subMenuCss.document.bgColor = 'navy' : subMenuCss.backgroundColor = 'yellow';			// show right submenu	if(changeObjectVisibility(menuId, visibDisp)) {	      	// store Ids on a globally-accessible object	window.currentlyVisiblePopup = menuId;	setObjZindex(menuId,358);	moveObject(menuId, dyn_SubmenuPosX_maxX, dyn_SubmenuPosY_maxY);	dyn_SubmenuPosY_maxY+=20; // B simple dyn_spacemaker in submenulist loop 	eventObj.cancelBubble = true;				//alert("SHOWMENUloop::"+menuId+"::"+ dyn_SubmenuPosX_maxX +"::"+ dyn_SubmenuPosY_maxY+":ADD15="+upgradedDyn_SubmenuPosY+":"+visibDisp+"::"+dyn_SubmenuPosX+"::"+dyn_SubmenuPosY+"::"+XlimitsWinWd_ReverseSubmenuX+"::"+YlimitsWinHg_ReverseSubmenuY+"::"+dynaAddSpacerTo_dyn_SubmenuPosY_maxY);	      		}	       	   }	          return true;              } else {        	return false;        	}       	   }// Swap Image Src fix a bug and add nested lyr supportfunction swapImage(imgName,imgScr,theLayer,theNestedBoxDiv) {	if (!theLayer) theLayer=''; else theLayer+='.document.';	if (!theNestedBoxDiv) theNestedBoxDiv=''; else theNestedBoxDiv+='.document.';	if (isNav) { eval("document."+theNestedBoxDiv+""+theLayer+"images."+imgName+".src='"+imgScr+"'");		} else { eval("document.images."+imgName+".src='"+imgScr+"'"); }       }// href="javascript:info.moveDiv(70,270,20)" onMouseOver="window.status='___c__r_e____d__i_t__s_____';return true" onMouseOut="window.status='';return true"var changeBgkImgLyrObj;function setObjBgImage(lyrObj, imgSrc, nestedLyrObj) {			//layer-background-image:url('images/back.jpg'); background-image:url('images/back.jpg') //imageTester1.gif			//(document.layers) ? objTit1.background.src = "imageTester3.gif":objTit1.backgroundImage= "url(imageTester3.gif)";		 changeBgkImgLyrObj = (nestedLyrObj) ? getStyleObject(lyrObj, 'sty', 0, nestedLyrObj) : getStyleObject(lyrObj, 'sty', 0, 0) ;  if(changeBgkImgLyrObj){		(document.layers) ? changeBgkImgLyrObj.background.src = imgSrc : changeBgkImgLyrObj.backgroundImage = 'url('+imgSrc+')'; }		 }// test Models ok// clean mode for setted bgkImgLyr// href="javascript:setObjBgImage('infoDiv', null, 'infoBoxDiv');"// href="javascript:setObjBgImage('infoBoxDiv', 'imgmenu/bl1trnsp.gif', 0);"// href="javascript:setObjBgImage('infoDiv', 'imgmenu/bl2trnsp.gif', 'infoBoxDiv');"// href="javascript:setObjBgColor('infoDiv', 'orange', 'infoBoxDiv');"// clean mode setted bgLyrColor// href="javascript:setObjBgColor('infoDiv', null, 'infoBoxDiv');"		 //setObjBgColor(lyrObj,'#FF0000');		 function setObjBgColor(lyrObj, neWColor, nestedLyrObj) {		 changeBgkColLyrObj = (nestedLyrObj) ? getStyleObject(lyrObj, 'sty', 0, nestedLyrObj) : getStyleObject(lyrObj, 'sty', 0, 0) ;		(document.layers) ? changeBgkColLyrObj.document.bgColor = neWColor : ((neWColor==null) ? changeBgkColLyrObj.backgroundColor = "transparent" : changeBgkColLyrObj.backgroundColor = neWColor);		 }/*setLayerBgColor(redLayerObj,'#FF0000');function setLayerColor(LAYEROBJ,COLOR) {   if (dyn && !ns4) LAYEROBJ.style.color = COLOR;   }   */var numMenus = 5;  // menu array lengthfunction hideAllMenus() {   for(counter = 1; counter <= numMenus; counter++) {          if(menuNumberforHideAllLoops == counter){       for(subinithide=1; subinithide <= submenuLenforHideAll; subinithide++){ 	      changeObjectVisibility('menu'+counter+'sub'+subinithide, 'hidden');       	     // alert("HIDEALL this menu="+'menu'+counter+'sub'+subinithide+"::"+menuNumberforHideAllLoops+"::"+counter);	     }	   }     }   }function hideRollONButtImg() {		// img src. swap based vers.   for(counterB = 1; counterB <= numMenus; counterB++) { var targRollImgOff = "imgmenu/bpop0"+counterB+".gif";        swapImage('bpop0'+counterB, targRollImgOff, 'menuTitle'+counterB,'boxDiv9');}      	}var neg;function randomMov(){  // only for test submenu act	var refRanX = getStyleObject('boxDiv9', 'sty', "valX", 0); var refRanY = getStyleObject('boxDiv9', 'sty', "valY", 0);	math_refRanX = (document.all) ? Math.random(parseInt(refRanX))*100 : Math.random(parseInt(refRanX))*100;	math_refRanY = (document.all) ? Math.random(parseInt(refRanY))*100 : Math.random(parseInt(refRanY))*100; if(neg == 0){math_refRanX2 = (document.all) ? parseInt(document.body.clientWidth/2+(math_refRanX)) : parseInt(innerWidth/2+(math_refRanX));			  math_refRanY2 = (document.all) ? parseInt(document.body.clientHeight/2+(math_refRanY)) : parseInt(innerHeight/2+(math_refRanY)); neg = 1;}     else{math_refRanX2 = (document.all) ? parseInt(document.body.clientWidth/2-(math_refRanX)) : parseInt(innerWidth/2-(math_refRanX));		 math_refRanY2 = (document.all) ? parseInt(document.body.clientHeight/2-(math_refRanY)) : parseInt(innerHeight/2-(math_refRanY)); neg = 0;		 }	   moveObject('boxDiv9', math_refRanX2, math_refRanY2);	   }     document.onclick = hideAllMenus;// end line doc