var tmAnimOpen= new Array(); var tmAnimClose= new Array(); var tmHide= new Array(); var speedPlatformFactor=6; if(N6){ speedPlatformFactor=3; } if(window.navigator.platform.substr(0,3).toLowerCase()=="mac"){ speedPlatformFactor=3; } function cs_bMenu_overV(tr,over,imgexp) { var aTd=tr.childNodes; if(over){ aTd[0].className="o"+aTd[0].className; aTd[1].className="o"+aTd[1].className; aTd[2].className="o"+aTd[2].className; } else{ aTd[0].className=aTd[0].className.substr(1); aTd[1].className=aTd[1].className.substr(1); aTd[2].className=aTd[2].className.substr(1); } if(imgexp!=""){ if(tr.lastChild.lastChild){ if(tr.lastChild.lastChild.tagName=="IMG"){ tr.lastChild.lastChild.src=imgexp; } } } } function cs_bMenu_overH(td,over) { if(over){ td.className="o"+td.className; } else{ td.className=td.className.substr(1); } } function cs_bMenu_overimg(fprefix,id,imgurl) { try{ document.getElementById("_bMImg"+fprefix+id).src=imgurl; }catch(err){alert(err);} } function cs_bMenu_getStyle(obj,styleProp,stylePropFF,defaultVal) { var stylePropVal=defaultVal; if (obj.currentStyle){ stylePropVal = obj.currentStyle[styleProp]; } else if (window.getComputedStyle){ stylePropVal = document.defaultView.getComputedStyle(obj,null).getPropertyValue(stylePropFF); if(stylePropVal==""){ stylePropVal=defaultVal; } } return stylePropVal; } function cs_bMenu_open(prefix,id,anim,sensH,sensV,V) { var mp=document.getElementById("_bM"+prefix); //Menu parent var m=document.getElementById("_bM"+prefix+"_"+id); var force=false; var sH=parseInt(sensH); var sV=parseInt(sensV); if(tmAnimClose[prefix+id]!=null){ window.clearInterval(tmAnimClose[prefix+id]); tmAnimClose[prefix+id]=null; force=true; } if(force || m.style.visibility=="hidden"){ var dvPaddingLeft=0; var dvPaddingRight=0; var dvPaddingTop=0; var dvPaddingBottom=0; dvPaddingLeft=parseInt(cs_bMenu_getStyle(m.parentNode.parentNode,"paddingLeft","padding-left",0)); dvPaddingRight=parseInt(cs_bMenu_getStyle(m.parentNode.parentNode,"paddingRight","padding-right",0)); dvPaddingTop=parseInt(cs_bMenu_getStyle(m.parentNode.parentNode,"paddingTop","padding-top",0)); dvPaddingBottom=parseInt(cs_bMenu_getStyle(m.parentNode.parentNode,"paddingBottom","padding-bottom",0)); /* if(m.parentNode.parentNode.style.paddingLeft){ dvPaddingLeft=parseInt(m.parentNode.parentNode.style.paddingLeft); } if(m.parentNode.parentNode.style.paddingRight){ dvPaddingRight=parseInt(m.parentNode.parentNode.style.paddingRight); } if(m.parentNode.parentNode.style.paddingTop){ dvPaddingTop=parseInt(m.parentNode.parentNode.style.paddingTop); } if(m.parentNode.parentNode.style.paddingBottom){ dvPaddingBottom=parseInt(m.parentNode.parentNode.style.paddingBottom); } */ //Positionning //Reprend le sens du parent if(sH!=0 && mp.style.position=="absolute"){ if((parseInt(mp.style.left)+m.offsetWidth)>=0){ sH=1; } else{ sH=-1; } } //Determine the abs pos of parent div var obj=m.parentNode; var s=0; while(obj){ s+=obj.offsetLeft; obj=obj.offsetParent; } var dvPosLeft=s-document.body.scrollLeft; var mpWidth; if(V){ mpWidth=m.parentNode.parentNode.offsetWidth+m.parentNode.parentNode.previousSibling.offsetWidth+m.parentNode.parentNode.previousSibling.previousSibling.offsetWidth; } else{ mpWidth=m.parentNode.parentNode.offsetWidth; } if(sH==1 && dvPosLeft+m.offsetWidth>document.body.offsetWidth){ //Pas assez de place à droite => a gauche si assez de place if((dvPosLeft-(mpWidth+m.offsetWidth-5))>0){ sH=-1; } } else if(sH==-1 && (dvPosLeft-(mpWidth+m.offsetWidth-5))<0){ //Pas assez de place à gauche => a droite si assez de place if(dvPosLeft+m.offsetWidth=0){ sH=1; } else{ sH=-1; } } cs_IEFWELT(m,0); cs_bMenu_anim(prefix,id,anim,parseInt(sH),parseInt(sV),V,0); } else{ cs_IEFWELT(m,0); m.style.visibility="hidden"; } } clearTimeout(tmHide[prefix+id]); tmHide[prefix+id]=null; } function cs_bMenu_anim(prefix,id,anim,sH,sV,V,open) { var m=document.getElementById("_bM"+prefix+"_"+id); var mp=document.getElementById("_bM"+prefix); //Menu parent var finalPosLeft var finalPosTop var initPosLeft; var initPosTop; var dvPaddingLeft=0; var dvPaddingRight=0; var dvPaddingTop=0; var dvPaddingBottom=0; dvPaddingLeft=parseInt(cs_bMenu_getStyle(m.parentNode.parentNode,"paddingLeft","padding-left",0)); dvPaddingRight=parseInt(cs_bMenu_getStyle(m.parentNode.parentNode,"paddingRight","padding-right",0)); dvPaddingTop=parseInt(cs_bMenu_getStyle(m.parentNode.parentNode,"paddingTop","padding-top",0)); dvPaddingBottom=parseInt(cs_bMenu_getStyle(m.parentNode.parentNode,"paddingBottom","padding-bottom",0)); /* if(m.parentNode.parentNode.style.paddingLeft){ dvPaddingLeft=parseInt(m.parentNode.parentNode.style.paddingLeft); } if(m.parentNode.parentNode.style.paddingRight){ dvPaddingRight=parseInt(m.parentNode.parentNode.style.paddingRight); } if(m.parentNode.parentNode.style.paddingTop){ dvPaddingTop=parseInt(m.parentNode.parentNode.style.paddingTop); } if(m.parentNode.parentNode.style.paddingBottom){ dvPaddingBottom=parseInt(m.parentNode.parentNode.style.paddingBottom); } */ if(tmAnimOpen[prefix+id]==null && tmAnimClose[prefix+id]==null){ switch(anim) { default: m.style.clip="rect(auto auto auto auto)"; if(open==1){//Open cs_IEFWELT(m,1); m.style.visibility="visible"; } else{ cs_IEFWELT(m,0); m.style.visibility="hidden"; } break; case "push": if(open==1){//Open finalPosLeft=parseInt(m.style.left); finalPosTop=parseInt(m.style.top); initPosLeft=finalPosLeft; initPosTop=finalPosTop; if(V){ switch(sH) { case 1: m.style.clip="rect(0px "+m.offsetWidth+"px "+m.offsetHeight+"px "+(m.offsetWidth)+"px)"; initPosLeft=finalPosLeft-m.offsetWidth; break; case 0: initPosTop=finalPosTop-sV*m.offsetHeight; break; case -1: m.style.clip="rect(0px 0px "+m.offsetHeight+"px "+(m.offsetWidth)+"px)"; initPosLeft=finalPosLeft+m.offsetWidth; break; } } else{ switch(sV) { case 1: m.style.clip="rect("+m.offsetHeight+"px "+m.offsetWidth+"px "+m.offsetHeight+"px 0px)"; initPosTop=finalPosTop-m.offsetHeight; break; case 0: initPosLeft=finalPosLeft-sH*m.offsetWidth; break; case -1: m.style.clip="rect(0px "+m.offsetWidth+"px 0px 0px)"; initPosTop=finalPosTop+m.offsetHeight; break; } } m.style.left=initPosLeft+"px"; m.style.top=initPosTop+"px"; m.style.visibility="visible"; m.style.zIndex=parseInt(cs_bMenu_getStyle(mp,"zIndex","z-index",0))+1;//mp.style.zIndex-1; tmAnimOpen[prefix+id]=window.setInterval("cs_bMenu_animPush('"+prefix+"','"+id+"','"+sH+"','"+sV+"','"+finalPosLeft+"','"+finalPosTop+"',1)",4); } else{ //Close finalPosLeft=parseInt(m.style.left); finalPosTop=parseInt(m.style.top); initPosLeft=parseInt(m.style.left); initPosTop=parseInt(m.style.top); if(V){ switch(sH) { case 1: finalPosLeft=-m.offsetWidth+dvPaddingRight; break; case 0: finalPosTop=-sV*m.offsetHeight+dvPaddingTop; break; case -1: finalPosLeft=-(m.parentNode.parentNode.offsetWidth+m.parentNode.parentNode.previousSibling.offsetWidth+m.parentNode.parentNode.previousSibling.previousSibling.offsetWidth)+dvPaddingRight; break; } } else{ switch(sV) { case 1: finalPosTop=-m.offsetHeight+dvPaddingTop; break; case 0: finalPosLeft=-sH*m.offsetWidth; break; case -1: finalPosTop=dvPaddingTop; break; } } m.style.zIndex=parseInt(cs_bMenu_getStyle(mp,"zIndex","z-index",0))+1;//mp.style.zIndex-1; tmAnimClose[prefix+id]=window.setInterval("cs_bMenu_animPush('"+prefix+"','"+id+"','"+sH+"','"+sV+"','"+finalPosLeft+"','"+finalPosTop+"',0)",4); } break; case "alpha": if(m.filters){ if(open==1){ m.style.visibility="hidden"; m.style.filter="progid:DXImageTransform.Microsoft.Fade(Overlap=1); "; m.filters.item(0).enabled = true; m.filters.item(0).apply(); m.style.visibility="visible"; m.filters.item(0).play(); cs_IEFWELT(m,1); } else{ m.style.visibility="visible"; m.style.filter="progid:DXImageTransform.Microsoft.Fade(Overlap=1); "; m.filters.item(0).enabled = true; m.filters.item(0).apply(); m.style.visibility="hidden"; m.filters.item(0).play(); cs_IEFWELT(m,0); } } else{ cs_bMenu_anim(prefix,id,"",sH,sV,V,open); } break; } } } function cs_bMenu_animPush(prefix,id,sH,sV,fL,fT,open) { var m=document.getElementById("_bM"+prefix+"_"+id); var pL=parseInt(m.style.left); var pT=parseInt(m.style.top); var ok=0; var dL=Math.abs(fL-pL); var dT=Math.abs(fT-pT); var clipDL; var clipDT; var pasL; var pasT; var speedDiv=speedPlatformFactor; if(open==1){ pasL=parseInt(dL/speedDiv)+1; pasT=parseInt(dT/speedDiv)+1; clipDL=dL; clipDT=dT; } else{ clipDL=m.offsetWidth-dL; clipDT=m.offsetHeight-dT; pasL=-parseInt(dL/speedDiv)-1; pasT=-parseInt(dT/speedDiv)-1; } if(dL>0){ pL+=sH*pasL; if(sH>0){ m.style.clip="rect(0px "+m.offsetWidth+"px "+m.offsetHeight+"px "+(clipDL-sH*pasL)+"px)"; } else{ m.style.clip="rect(0px "+(m.offsetWidth-clipDL-sH*pasL)+"px "+m.offsetHeight+ "px 0px)"; } ok=1; } if(dT>0){ pT+=sV*pasT; if(sV>0){ m.style.clip="rect("+(clipDT-sV*pasT)+"px "+m.offsetWidth+"px "+m.offsetHeight+"px 0px)"; } else{ m.style.clip="rect(0px "+m.offsetWidth+"px "+(m.offsetHeight-clipDT-sV*pasT)+ "px 0px)"; } ok=1; } if(ok==1){ m.style.left=pL+"px"; m.style.top=pT+"px"; cs_IEFWELT(m,1); } else{ //fini m.style.left=fL+"px"; m.style.top=fT+"px"; if(open==1){ window.clearInterval(tmAnimOpen[prefix+id]); tmAnimOpen[prefix+id]=null; m.style.clip="rect(auto auto auto auto)"; cs_IEFWELT(m,1); } else{ window.clearInterval(tmAnimClose[prefix+id]); tmAnimClose[prefix+id]=null; m.style.visibility="hidden"; m.style.clip="rect(auto auto auto auto)"; cs_IEFWELT(m,0); } } if(m.style.visibility=="hidden"){ m.style.clip="rect(auto auto auto auto)"; cs_IEFWELT(m,0);//refaire ca car peut être que le close a eu lieu avant que cette fonction soit terminée } }