Subversion Repositories oidinfo_new_design

Rev

View as "text/javascript" | Blame | Last modification | View Log | RSS feed

  1. function LoadSld()
  2. {
  3.         var sld=GetObj("SlideObj")
  4.         if( !g_supportsPPTHTML ) {
  5.                 sld.style.visibility="visible"
  6.                 return
  7.         }
  8.         if( MakeNotesVis() ) return
  9.         runAnimations = _InitAnimations();
  10.         if( IsWin("PPTSld") )
  11.                 parent.SldUpdated(GetSldId())
  12.         g_origSz=parseInt(SlideObj.style.fontSize)
  13.         g_origH=sld.style.posHeight
  14.         g_origW=sld.style.posWidth
  15.         g_scaleHyperlinks=(document.all.tags("AREA").length>0)
  16.         if( g_scaleHyperlinks )
  17.                 InitHLinkArray()
  18.         if( g_scaleInFrame||(IsWin("PPTSld") && parent.IsFullScrMode() ) )
  19.                 document.body.scroll="no"
  20.         _RSW()
  21.         if( IsWin("PPTSld") && parent.IsFullScrMode() )
  22.                 FullScrInit();
  23.        
  24.         MakeSldVis();
  25.         ChkAutoAdv()
  26.  
  27.         if( runAnimations )
  28.         {
  29.                 if( document.all("NSPlay") )
  30.                         document.all("NSPlay").autoStart = false;
  31.                 if( sld.filters && sld.filters.revealtrans )
  32.                         setTimeout( "document.body.start()", sld.filters.revealtrans.duration * 1000 );
  33.                 else
  34.                         document.body.start();
  35.         }
  36. }
  37. function MakeSldVis()
  38. {
  39.         var fTrans=g_showAnimation && SldHasTrans()
  40.         if( fTrans )
  41.         {
  42.                 if( g_bgSound ) {
  43.                         idx=g_bgSound.indexOf(",");
  44.                         pptSound.src=g_bgSound.substr( 0, idx );
  45.                         pptSound.loop= -(parseInt(g_bgSound.substr(idx+1)));
  46.                 }
  47.                 SlideObj.filters.revealtrans.Apply()
  48.     }
  49.         SlideObj.style.visibility="visible"
  50.         if( fTrans )
  51.                 SlideObj.filters.revealtrans.Play()
  52. }
  53. function MakeNotesVis()
  54. {
  55.         if( !IsNts() ) return false
  56.         SlideObj.style.display="none"
  57.         nObj = document.all.item("NotesObj")
  58.         parent.SetHasNts(0)
  59.         if( nObj ) {
  60.                 nObj.style.display=""
  61.                 parent.SetHasNts(1)
  62.         }
  63.         return 1
  64. }
  65. function ChkAutoAdv()
  66. {
  67.         if(SldHasTrans())
  68.                 SlideObj.onfilterchange=AutoAdv
  69.         else
  70.                 AutoAdv()
  71. }
  72. function AutoAdv()
  73. {
  74.         if(!IsWin("PPTSld") || !gUseSldTimings )return
  75.         var sld=GetCurSld()
  76.         if( (sld.mAdvDelay>0) && !parent.IsFramesMode() )
  77.                 setTimeout("parent.GoToNextSld()",sld.mAdvDelay)
  78. }
  79. function GetObj(id)
  80. {
  81.         if(g_supportsPPTHTML) return document.all(id);
  82.         else return document.getElementById(id);
  83. }
  84. function SldHasTrans() { return SlideObj.style.getAttribute("filter")!="" }
  85. function GetSldId() { return sId=location.href.substring(location.href.lastIndexOf('/')+1) }
  86. function HideMenu() { if( frames["PPTSld"] && PPTSld.document.all.item("ctxtmenu") && PPTSld.ctxtmenu.style.display!="none" ) { PPTSld.ctxtmenu.style.display='none'; return true } return false }
  87. function IsWin( name ) { return window.name == name }
  88. function IsNts() { return IsWin("PPTNts") }
  89. function IsSldOrNts() { return( IsWin("PPTSld")||IsWin("PPTNts") ) }
  90. function SupportsPPTAnimation() { return( navigator.platform == "Win32" && navigator.appVersion.indexOf("Windows")>0 ) }
  91. function SupportsPPTHTML()
  92. {
  93.         var appVer=navigator.appVersion, msie=appVer.indexOf("MSIE "), ver=0
  94.         if( msie >= 0 )
  95.                 ver=parseFloat( appVer.substring( msie+5, appVer.indexOf(";",msie) ) )
  96.         else
  97.                 ver=parseInt(appVer)
  98.         return( ver >= 4 && msie >= 0 )
  99. }
  100. function _RSW()
  101. {
  102.         if( !g_supportsPPTHTML || IsNts() ||
  103.           ( !g_scaleInFrame && (!IsWin("PPTSld") || !parent.IsFullScrMode()) ) )
  104.                 return
  105.         var padding=0;
  106.         if( IsWin("PPTSld") && parent.IsFramesMode() ) padding=6
  107.         cltWidth=document.body.clientWidth-padding
  108.         cltHeight=document.body.clientHeight-padding
  109.         factor=(1.0*cltWidth)/g_origW
  110.         if( cltHeight < g_origH*factor )
  111.                 factor=(1.0*cltHeight)/g_origH
  112.         newSize = g_origSz * factor
  113.         if( newSize < 1 ) newSize=1
  114.         s=SlideObj.style
  115.         s.fontSize=newSize+"px"
  116.         s.posWidth=g_origW*factor
  117.         s.posHeight=g_origH*factor
  118.         s.posLeft=(cltWidth-s.posWidth+padding)/2
  119.         s.posTop=(cltHeight-s.posHeight+padding)/2
  120.         if( g_scaleHyperlinks )
  121.                 ScaleHyperlinks( factor )
  122. }
  123. function _InitAnimations()
  124. {
  125.         animRuntimeInstalled = ''+document.body.localTime != 'undefined';
  126.         isFullScreen = (window.name == "PPTSld") && !parent.IsFramesMode();
  127.         g_animUseRuntime = g_showAnimation && animRuntimeInstalled && !(isFullScreen && parent.IsSldVisited());
  128.         if( g_animUseRuntime ) {
  129.                 collSeq = document.all.tags("seq");
  130.                 if( collSeq != null ) {
  131.                         for(ii=0;ii<collSeq.length;ii++) {
  132.                                 if( collSeq[ii].getAttribute( "p:nodeType" ) == "mainSeq" ) {
  133.                                         g_animMainSequence = collSeq[ii];
  134.                                         break;
  135.                                 }
  136.                         }
  137.                 }
  138.                 if( g_animItemsToHide ) {
  139.                         for(jj = 0; jj < g_animItemsToHide.length; jj++) {
  140.                                 if( hideObj = GetObj(g_animItemsToHide[jj]) )
  141.                                         hideObj.runtimeStyle.visibility="hidden";
  142.                         }
  143.                 }
  144.                 if( g_animInteractiveItems ){
  145.                         for(jj = 0; jj < g_animInteractiveItems.length; jj++) {
  146.                                 if( triggerObj = GetObj(g_animInteractiveItems[jj]) )
  147.                                         triggerObj.runtimeStyle.cursor="hand";
  148.                         }
  149.                 }
  150.                 if( gUseSldTimings && ''+g_animSlideTime != 'undefined' ) {
  151.                         adjustedTime = document.body.calculateAutoAdvanceTimes( g_animSlideTime, g_animEffectTimings );
  152.                         if( IsWin("PPTSld") && adjustedTime != g_animSlideTime ) {
  153.                            var sld = GetCurSld();
  154.                            sld.mAdvDelay = adjustedTime * 1000;
  155.                         }
  156.                 }
  157.         }
  158.         return g_animUseRuntime;
  159. }
  160. gSldJump = 0, gSldJumpTrack = 0, gSldJumpIdx = "";
  161. function _KPH()
  162. {
  163.         if( IsNts() ) return;
  164.         if( !parent.IsFramesMode() && event.keyCode == 27 && !HideMenu() )
  165.                 parent.window.close( self );
  166.         else if( event.keyCode == 32 ) {
  167.                 if( window.name == "PPTSld" )
  168.                         parent.PPTSld.DocumentOnClick();
  169.                 else
  170.                         parent.GoToNextSld();
  171.         }
  172.         CatchNumKeys( parent, event );
  173. }
  174. function CatchNumKeys( win, event ) {
  175.         if( win.IsFullScrMode() && (48<=event.keyCode) && (event.keyCode<=57) ) {
  176.                 gSldJump = 1;
  177.                 gSldJumpIdx += (event.keyCode-48).toString();
  178.         }
  179.         if( win.IsFullScrMode() && gSldJump && event.keyCode == 13 ) {
  180.                 var numSlds = parent.GetSldList().mList.length
  181.                 if ( gSldJumpIdx > numSlds )
  182.                         gSldJumpIdx = numSlds;
  183.                 if ( gSldJumpIdx >= 0 ) {
  184.                         if ( gSldJumpIdx == 0 )
  185.                                 gSldJumpIdx = 1;
  186.                         var jumpTo = parseInt(gSldJumpIdx);
  187.                         gSldJump = 0; gSldJumpIdx = "";
  188.                         win.GoToSld( parent.GetSldList().mList[jumpTo-1].mSldHref )
  189.                 }
  190.         }
  191. }
  192. function _KDH()
  193. {
  194.         if( event.keyCode == 8 ) {
  195.                 event.returnValue = 0;
  196.                 parent.GoToPrevSld();
  197.         }
  198. }
  199. function DocumentOnClick()
  200. {
  201.         if( IsNts() || parent.HideMenu() ) return;
  202.         if( ( g_allowAdvOnClick && !parent.IsFramesMode() ) ||
  203.             (event && (event.keyCode==32) ) )
  204.                 parent.GoToNextSld();
  205. }
  206.  
  207. var g_supportsPPTHTML = SupportsPPTHTML(), g_scaleInFrame = 1, gId="", g_bgSound="",
  208.     g_scaleHyperlinks = false, g_allowAdvOnClick = 1, g_showInBrowser = 0, gLoopCont = 0, gUseSldTimings = 1;
  209. var g_showAnimation = g_supportsPPTHTML && SupportsPPTAnimation() && ( (window.name=="PPTSld" && !parent.IsFramesMode()) || g_showInBrowser );var g_animManager = null;
  210. var g_animUseRuntime = false;
  211. var g_animItemsToHide, g_animInteractiveItems, g_animSlideTime;
  212. var g_animMainSequence = null;
  213. var ENDSHOW_MESG="Fin du diaporama, cliquez pour quitter.", SCREEN_MODE="Frames", gIsEndShow=0, NUM_VIS_SLDS=16, SCRIPT_HREF="script.js", FULLSCR_HREF="fullscreen.htm";
  214. var gCurSld = gPrevSld = 1, g_offset = 0, gNtsOpen = gHasNts = gOtlTxtExp = 0, gHasNarration = 0, gOtlOpen = true
  215. window.gPPTHTML=SupportsPPTHTML()
  216. var gMainDoc=new Array(new hrefList("slide0079.htm",1,-1,1),new hrefList("slide0068.htm",1,-1,1),new hrefList("slide0067.htm",1,-1,1),new hrefList("slide0081.htm",1,-1,1),new hrefList("slide0052.htm",1,-1,1),new hrefList("slide0071.htm",1,-1,1),new hrefList("slide0070.htm",1,-1,1),new hrefList("slide0072.htm",1,-1,1),new hrefList("slide0082.htm",1,-1,1),new hrefList("slide0075.htm",1,-1,1),new hrefList("slide0077.htm",1,-1,1),new hrefList("slide0080.htm",1,-1,1),new hrefList("slide0078.htm",1,-1,1),new hrefList("slide0074.htm",1,-1,1),new hrefList("slide0083.htm",1,-1,1),new hrefList("slide0069.htm",1,-1,1));
  217. function FullScrInit()
  218. {
  219.         g_allowAdvOnClick = GetCurSld().mAdvOnClk
  220.         document.body.style.backgroundColor="black"
  221.         document.oncontextmenu=parent._CM;
  222.         document.onkeydown = _KDH;
  223.         document.ondragstart=Cancel
  224.         document.onselectstart=Cancel
  225.         self.focus()
  226. }
  227. function Redirect( frmId )
  228. {
  229.         var str=document.location.hash,idx=str.indexOf('#'), sId=GetSldId()
  230.         if(idx>=0) str=str.substr(1);
  231.         if( window.name != frmId && ( sId != str) ) {
  232.                 obj = GetObj("Main-File")
  233.                 window.location.href=obj.href+"#"+sId
  234.                 return 1
  235.         }
  236.         return 0
  237. }
  238. var MHTMLPrefix = CalculateMHTMLPrefix();
  239. function CalculateMHTMLPrefix()
  240. {
  241.         if ( document.location.protocol == 'mhtml:') {
  242.                 href=new String(document.location.href)
  243.                 Start=href.indexOf('!')+1
  244.                 End=href.lastIndexOf('/')+1
  245.                 if (End < Start)
  246.                         return href.substring(0, Start)
  247.                 else
  248.                 return href.substring(0, End)
  249.         }
  250.         return '';
  251. }
  252. function GetTags(base,tag)
  253. {
  254.         if(g_supportsPPTHTML) return base.all.tags(tag);
  255.         else return base.getElementsByTagName(tag);
  256. }
  257. function UpdNtsPane(){ if(frames["PPTNts"]) PPTNts.location.replace( MHTMLPrefix+GetHrefObj( gCurSld ).mNtsHref ) }
  258. function UpdNavPane( sldIndex ){ if(gNavLoaded) PPTNav.UpdNav() }
  259. function UpdOtNavPane(){ if(gOtlNavLoaded) PPTOtlNav.UpdOtlNav() }
  260. function UpdOtlPane(){ if(gOtlLoaded) PPTOtl.UpdOtl() }
  261. function SetHasNts( fVal )
  262. {
  263.         if( gHasNts != fVal ) {
  264.                 gHasNts=fVal
  265.                 UpdNavPane()
  266.         }
  267. }
  268. function ToggleOtlText()
  269. {
  270.         gOtlTxtExp=!gOtlTxtExp
  271.         UpdOtlPane()
  272. }
  273. function ToggleOtlPane()
  274. {
  275.         frmset=document.all("PPTHorizAdjust")
  276.         frm=document.all("PPTOtl")
  277.         if( gOtlOpen )
  278.                 frmset.cols="*,100%"
  279.         else
  280.                 frmset.cols="25%,*"
  281.         gOtlOpen=!gOtlOpen
  282.         frm.noResize=!frm.noResize
  283.         UpdOtNavPane()
  284. }
  285. function ToggleNtsPane()
  286. {
  287.         frmset=document.all("PPTVertAdjust")
  288.         frm=document.all("PPTNts")
  289.         if( gNtsOpen )
  290.                 frmset.rows="100%,*"
  291.         else
  292.                 frmset.rows="*,20%"
  293.         gNtsOpen=!gNtsOpen
  294.         UpdNtsPane()
  295. }
  296. function ClearMedia()
  297. {
  298.         if (PPTSld.pptSound) PPTSld.pptSound.loop = 0;
  299. }
  300. function FullScreen()
  301. {
  302.         if ( PPTSld.g_animUseRuntime )
  303.                 PPTSld.document.body.pause();
  304.         ClearMedia();
  305.         var href = ( document.location.protocol == 'mhtml:') ? FULLSCR_HREF : FULLSCR_HREF+"#"+GetHrefObj(gCurSld).mSldHref;
  306.         if(PPTNav.event.ctrlKey) {
  307.                 var w = (window.screen.availWidth * 1.0) / 2.0
  308.                 var h = w * (PPTSld.g_origH * 1.0) / PPTSld.g_origW
  309.                 win = window.open( MHTMLPrefix+href,null,"toolbar=0,resizable=1,top=0,left=0," + "width="+ w + ",height=" + h );
  310.                 if( PPTSld.g_animUseRuntime )
  311.                         win.document.body.PPTSldFrameset=window;
  312.         }
  313.         else
  314.         {
  315.                 win = window.open( MHTMLPrefix+href,null,"fullscreen=yes" );
  316.                 if( PPTSld.g_animUseRuntime )
  317.                         win.document.body.PPTSldFrameset=window;
  318.         }
  319. }
  320. function ToggleVNarration()
  321. {
  322.         rObj=PPTSld.document.all("NSPlay")
  323.         if( rObj && !PPTSld.g_animUseRuntime ) {
  324.                 if( (rObj.playState == 1)||(rObj.playState == 0) )
  325.                         rObj.Play()
  326.                 else if( rObj.playState == 2 )
  327.                         rObj.Pause()
  328.                 else
  329.                         return;
  330.         }
  331.         else if( PPTSld.g_animUseRuntime )
  332.         {
  333.                 narObj = PPTSld.document.all("narrationID")
  334.                 if( narObj )
  335.                         narObj.togglePause()
  336.         }
  337. }
  338. function GetCurSldNum()
  339. {
  340.         obj=GetHrefObj(gCurSld)
  341.         if( obj.mOrigVis == 1 )
  342.                 return obj.mSldIdx
  343.         else
  344.                 return gCurSld
  345. }
  346. function GetNumSlds()
  347. {
  348.         if( GetHrefObj(gCurSld).mOrigVis == 1 )
  349.                 return GetSldList().mNumVisSlds;
  350.         else
  351.                 return GetSldList().mList.length
  352. }
  353. function GetSldNum( href )
  354. {
  355.         for(ii=0; ii<GetSldList().mList.length; ii++) {
  356.                 if ( GetSldList().mList[ii].mSldHref == href )
  357.                         return ii+1
  358.         }
  359.         return 1
  360. }
  361. function GetHrefObj( sldIdx ){ return GetSldList().mList[sldIdx-1] }
  362. function IsFramesMode(){ return ( SCREEN_MODE == "Frames" ) }
  363. function IsFullScrMode(){ return ( SCREEN_MODE == "FullScreen" ) }
  364. function GoToNextSld()
  365. {
  366.         ii=gCurSld + 1
  367.         if( GetHrefObj( ii-1 ).mOrigVis == 0 ) {
  368.                 if( ii<=GetSldList().mList.length ) {
  369.                         obj=GetHrefObj(ii)
  370.                         obj.mVis=1
  371.                         GoToSldNum(ii)
  372.                         return
  373.                 }
  374.         }
  375.         else {
  376.                 obj=GetHrefObj( ii )
  377.                 while ( obj && ( obj.mOrigVis == 0 ) )
  378.                         obj=GetHrefObj(++ii)
  379.                 if( obj && obj.mOrigVis ) {
  380.                         GoToSldNum(ii)
  381.                         return
  382.                 }
  383.         }
  384.         if( gSldStack.length > 1 )
  385.                 PopSldList();
  386.         else if( !IsFramesMode() ) {
  387.                 if( gLoopCont )
  388.                         GoToFirst()
  389.                 else
  390.                         EndShow()
  391.         }
  392. }
  393. function GoToPrevSld()
  394. {
  395.         ii=gCurSld-1
  396.         if( ii > 0 ) {
  397.                 obj=GetHrefObj(ii)
  398.                 while ( obj && ( obj.mVis == 0 ) && ( ii>0 ) )
  399.                         obj=GetHrefObj(--ii)
  400.         if( ii == 0 ) ii=1
  401.                 GoToSldNum(ii)
  402.         }
  403. }
  404. function GoToFirst(){ GoToSld( GetHrefObj(1).mSldHref ) }
  405. function GoToLast()
  406. {
  407.         ii=GetSldList().mList.length
  408.         if( ii != gCurSld )
  409.                 GoToSld( GetHrefObj(ii).mSldHref )
  410. }
  411. function GoToSldNum( num )
  412. {
  413.         if( PPTSld.event ) PPTSld.event.cancelBubble=true
  414.         obj = GetHrefObj( num )
  415.         obj.mVis=1
  416.         gPrevSld=gCurSld
  417.         gCurSld = num;
  418.         PPTSld.location.replace(MHTMLPrefix+obj.mSldHref)
  419.         if( IsFramesMode() ) {
  420.                 UpdNavPane(); UpdOtlPane(); UpdNtsPane()
  421.         }
  422. }
  423. function GoToSld( href )
  424. {
  425.         if( PPTSld.event ) PPTSld.event.cancelBubble=true
  426.         GetHrefObj( GetSldNum(href) ).mVis=1
  427.         PPTSld.location.replace(MHTMLPrefix+href)
  428. }
  429. function SldUpdated( id )
  430. {
  431.         if( id == GetHrefObj(gCurSld).mSldHref ) return
  432.         gPrevSld=gCurSld
  433.         gCurSld=GetSldNum(id)
  434.         if( IsFramesMode() ) {
  435.                 UpdNavPane(); UpdOtlPane(); UpdNtsPane()
  436.         }
  437. }
  438. function PrevSldViewed(){ GoToSld( GetHrefObj(gPrevSld).mSldHref ) }
  439. function HasPrevSld() { return ( gIsEndShow || ( gCurSld != 1 && GetHrefObj( gCurSld-1 ).mVis == 1 )||( GetCurSldNum() > 1 ) ) }
  440. function HasNextSld() { return (GetCurSldNum() != GetNumSlds()) }
  441. function CloseWindow() {
  442.         if( HideMenu() ) return;
  443.         var event = PPTSld.event;
  444.         if( !IsFramesMode() && event && (event.keyCode==27 || event.keyCode==32 || event.type=="click" ) )
  445.                 window.close( self );
  446.         CatchNumKeys( self, event );
  447. }
  448. function Unload() { gIsEndShow=0; }
  449. function SetupEndShow() {
  450.         gIsEndShow=1;
  451.         PPTSld.document.body.scroll="no";
  452.         PPTSld.document.onkeypress=CloseWindow;
  453.         PPTSld.document.onclick=CloseWindow;
  454.         PPTSld.document.oncontextmenu=_CM;
  455. }
  456. function EndShow()
  457. {
  458.         if( IsFramesMode() ) return
  459.         if( PPTSld.event ) PPTSld.event.cancelBubble=true
  460.         doc=PPTSld.document
  461.         doc.open()
  462.         doc.writeln('<html><body bgcolor=black onload=parent.SetupEndShow() onunload=parent.Unload()><center><p><font face=Tahoma color=white size=2><br><b>' + ENDSHOW_MESG + '</b></font></p></center></body></html>')
  463.         doc.close()
  464. }
  465. function SetSldVisited(){ GetSldList().mList[gCurSld-1].mVisited=true }
  466. function IsSldVisited(){ return GetSldList().mList[gCurSld-1].mVisited }
  467. function hrefList( sldHref, visible, advDelay, advClk )
  468. {
  469.         this.mSldHref= this.mNtsHref = sldHref
  470.         this.mOrigVis= this.mVis = visible
  471.         this.mVisited= false
  472.         this.mAdvDelay= advDelay
  473.         this.mAdvOnClk= advClk
  474. }
  475. function SldList(arr,curSld,fEnd)
  476. {
  477.         this.mCurSld = curSld;
  478.         this.mList = new Array();
  479.         var idx = 1;
  480.         for(ii=0;ii<arr.length;ii++) {
  481.                 this.mList[ii] = new hrefList( arr[ii].mSldHref, arr[ii].mOrigVis, arr[ii].mAdvDelay, arr[ii].mAdvOnClk );
  482.                 if( arr[ii].mOrigVis )
  483.                         this.mList[ii].mSldIdx = idx++;
  484.         }
  485.         this.mNumVisSlds = idx-1;
  486.         this.fEndShow = fEnd;
  487. }
  488. function GetSldList() { return gSldStack[gSldStack.length-1] }
  489. function GetCurSld() { return parent.GetSldList().mList[parent.gCurSld - 1] }
  490. gSldStack = new Array();
  491. gSldStack[0] = new SldList(gMainDoc,gCurSld,1)
  492. function ViewCustomShow(idx,fEnd)
  493. {
  494.         if( !IsFullScrMode() ) return;
  495.         var sldList = new Array();
  496.         var custShow = custShowList[idx-1];
  497.         var jj = 0;
  498.         for( ii=0;ii<custShow.length;ii++ ) {
  499.                 if( custShow[ii] <= gMainDoc.length )
  500.                         sldList[jj++] = gMainDoc[custShow[ii]-1];
  501.         }
  502.         if (sldList.length > 0) {
  503.         PushSldList(sldList,fEnd);
  504.         gCurSld = 1;
  505.         }
  506.         else
  507.                 if( PPTSld.event ) PPTSld.event.cancelBubble=true
  508. }
  509. function PushSldList(arr,fEnd) {
  510.         var ii = gSldStack.length;
  511.         gSldStack[ii] = new SldList(arr,gCurSld,fEnd);
  512.         GoToSld( gSldStack[ii].mList[0].mSldHref );
  513. }
  514. function PopSldList() {
  515.         if (gSldStack[gSldStack.length-1].fEndShow)
  516.                 EndShow()
  517.         else {
  518.         gCurSld = gSldStack[gSldStack.length-1].mCurSld;
  519.         gSldStack[gSldStack.length-1] = null;
  520.         gSldStack.length--;
  521.         var sldList = gSldStack[gSldStack.length-1];
  522.         GoToSld( sldList.mList[gCurSld - 1].mSldHref );
  523.         }
  524. }
  525. var custShowList=new Array();
  526. function ImgBtn( oId,bId,w,action )
  527. {
  528.         var t=this
  529.         t.Perform    = _IBP
  530.         t.SetActive  = _IBSetA
  531.         t.SetInactive= _IBSetI
  532.         t.SetPressed = _IBSetP
  533.         t.SetDisabled= _IBSetD
  534.         t.Enabled    = _IBSetE
  535.         t.ChangeIcon = null
  536.         t.UserAction = action
  537.         t.ChgState   = _IBUI
  538.         t.mObjId   = oId
  539.         t.mBorderId= bId
  540.         t.mWidth   = w
  541.         t.mIsOn    = t.mCurState = 0
  542. }
  543. function _IBSetA()
  544. {
  545.         if( this.mIsOn ) {
  546.                 obj=this.ChgState( gHiliteClr,gShadowClr,2 )
  547.                 obj.style.posTop=0
  548.         }
  549. }
  550. function _IBSetI()
  551. {
  552.         if( this.mIsOn ) {
  553.                 obj=this.ChgState( gFaceClr,gFaceClr,1 )
  554.                 obj.style.posTop=0
  555.         }
  556. }
  557. function _IBSetP()
  558. {
  559.         if( this.mIsOn ) {
  560.                 obj=this.ChgState( gShadowClr,gHiliteClr,2 )
  561.                 obj.style.posLeft+=1; obj.style.posTop+=1
  562.         }
  563. }
  564. function _IBSetD()
  565. {
  566.         obj=this.ChgState( gFaceClr,gFaceClr,0 )
  567.         obj.style.posTop=0
  568. }
  569. function _IBSetE( state )
  570. {
  571.         var t=this
  572.         GetObj( t.mBorderId ).style.visibility="visible"
  573.         if( state != t.mIsOn ) {
  574.                 t.mIsOn=state
  575.                 if( state )
  576.                         t.SetInactive()
  577.                 else
  578.                         t.SetDisabled()
  579.         }
  580. }
  581. function _IBP()
  582. {
  583.         var t=this
  584.         if( t.mIsOn ) {
  585.                 if( t.UserAction != null )
  586.                         t.UserAction()
  587.                 if( t.ChangeIcon ) {
  588.                         obj=GetObj(t.mObjId)
  589.                         if( t.ChangeIcon() )
  590.                                 obj.style.posLeft=obj.style.posLeft+(t.mCurState-4)*t.mWidth
  591.                         else
  592.                                 obj.style.posLeft=obj.style.posLeft+(t.mCurState-0)*t.mWidth
  593.                 }
  594.                 t.SetActive()
  595.         }
  596. }
  597. function _IBUI( clr1,clr2,nextState )
  598. {
  599.         var t=this
  600.         SetBorder( GetObj( t.mBorderId ),clr1,clr2 )
  601.         obj=GetObj( t.mObjId )
  602.         obj.style.posLeft=obj.style.posLeft+(t.mCurState-nextState)*t.mWidth-obj.style.posTop
  603.         t.mCurState=nextState
  604.         return obj
  605. }
  606. function TxtBtn( oId,oeId,action,chkState )
  607. {
  608.         var t=this
  609.         t.Perform    = _TBP
  610.         t.SetActive  = _TBSetA
  611.         t.SetInactive= _TBSetI
  612.         t.SetPressed = _TBSetP
  613.         t.SetDisabled= _TBSetD
  614.         t.SetEnabled = _TBSetE
  615.         t.GetState   = chkState
  616.         t.UserAction = action
  617.         t.ChgState   = _TBUI
  618.         t.mObjId      = oId
  619.         t.m_elementsId= oeId
  620.         t.mIsOn       = 1
  621. }
  622. function _TBSetA()
  623. {
  624.         var t=this
  625.         if( t.mIsOn && !t.GetState() )
  626.                 t.ChgState( gHiliteClr,gShadowClr,0,0 )
  627. }
  628. function _TBSetI()
  629. {
  630.         var t=this
  631.         if( t.mIsOn && !t.GetState() )
  632.                 t.ChgState( gFaceClr,gFaceClr,0,0 )
  633. }
  634. function _TBSetP()
  635. {
  636.         if( this.mIsOn )
  637.                 this.ChgState( gShadowClr,gHiliteClr,1,1 )
  638. }
  639. function _TBSetD()
  640. {
  641.         this.ChgState( gFaceClr,gFaceClr,0,0 )
  642.         this.mIsOn = 0
  643. }
  644. function _TBSetE()
  645. {
  646.         var t=this
  647.         if( !t.GetState() )
  648.                 t.ChgState( gFaceClr,gFaceClr,0,0 )
  649.         else
  650.                 t.ChgState( gShadowClr,gHiliteClr,1,1 )
  651.         t.mIsOn = 1
  652. }
  653. function _TBP()
  654. {
  655.         var t=this
  656.         if( t.mIsOn ) {
  657.                 if( t.UserAction != null )
  658.                         t.UserAction()
  659.         if( !t.GetState )
  660.             return
  661.                 if( t.GetState() )
  662.                         t.SetPressed()
  663.                 else
  664.                         t.SetActive()
  665.         }
  666. }
  667. function _TBUI( clr1,clr2,lOffset,tOffset )
  668. {
  669.         SetBorder( GetObj( this.mObjId ),clr1,clr2 )
  670.         Offset( GetObj( this.m_elementsId ),lOffset,tOffset )
  671. }
  672. function Offset( obj, top, left ){ obj.style.top=top; obj.style.left=left }
  673. function SetBorder( obj, upperLeft, lowerRight )
  674. {
  675.         s=obj.style;
  676.         s.borderStyle      = "solid"
  677.         s.borderWidth      = 1
  678.         s.borderLeftColor  = s.borderTopColor = upperLeft
  679.         s.borderBottomColor= s.borderRightColor = lowerRight
  680. }
  681. function GetBtnObj(){ return gBtnArr[window.event.srcElement.id] }
  682. function BtnOnOver(){ b=GetBtnObj(); if( b != null ) b.SetActive() }
  683. function BtnOnDown(){ b=GetBtnObj(); if( b != null ) b.SetPressed() }
  684. function BtnOnOut(){ b=GetBtnObj(); if( b != null ) b.SetInactive() }
  685. function BtnOnUp()
  686. {
  687.         b=GetBtnObj()
  688.         if( b != null )
  689.                 b.Perform()
  690.         else
  691.                 Upd()
  692. }
  693. function GetNtsState(){ return parent.gNtsOpen }
  694. function GetOtlState(){ return parent.gOtlOpen }
  695. function GetOtlTxtState(){ return parent.gOtlTxtExp }
  696. function NtsBtnSetFlag( fVal )
  697. {
  698.         s=document.all.item( this.m_flagId ).style
  699.         s.display="none"
  700.         if( fVal )
  701.                 s.display=""
  702.         else
  703.                 s.display="none"
  704. }
  705. function _BSetA_Border(){ b = gBtnArr[this.mObjId]; if( b != null ) b.SetActive() }
  706. function _BSetI_Border(){ b = gBtnArr[this.mObjId]; if( b != null ) b.SetInactive() }
  707. var gHiliteClr="THREEDHIGHLIGHT",gShadowClr="THREEDSHADOW",gFaceClr="THREEDFACE"
  708. var gBtnArr = new Array()
  709. gBtnArr["nb_otl"] = new TxtBtn( "nb_otl","nb_otlElem",parent.ToggleOtlPane,GetOtlState )
  710. gBtnArr["nb_otlElem"] = new TxtBtn( "nb_otl","nb_otlElem",parent.ToggleOtlPane,GetOtlState )
  711. gBtnArr["nb_nts"] = new TxtBtn( "nb_nts","nb_ntsElem",parent.ToggleNtsPane,GetNtsState )
  712. gBtnArr["nb_prev"]= new ImgBtn( "nb_prev","nb_prevBorder",30,parent.GoToPrevSld )
  713. gBtnArr["nb_next"]= new ImgBtn( "nb_next","nb_nextBorder",30,parent.GoToNextSld )
  714. gBtnArr["nb_sldshw"]= new ImgBtn( "nb_sldshw","nb_sldshwBorder",18,parent.FullScreen )
  715. gBtnArr["nb_sldshwBorder"] = new TxtBtn( "nb_sldshw","nb_sldshwBorder",parent.FullScreen,null )
  716. gBtnArr["nb_sldshwBorder"].SetActive = _BSetA_Border;
  717. gBtnArr["nb_sldshwBorder"].SetInactive = _BSetI_Border;
  718. gBtnArr["nb_sldshwText"] = new TxtBtn( "nb_sldshw","nb_sldshwText",parent.FullScreen,null )
  719. gBtnArr["nb_sldshwText"].SetActive = _BSetA_Border;
  720. gBtnArr["nb_sldshwText"].SetInactive = _BSetI_Border;
  721. gBtnArr["nb_voice"]  = new ImgBtn( "nb_voice","nb_voiceBorder",18,parent.ToggleVNarration )
  722. gBtnArr["nb_otlTxt"]= new ImgBtn( "nb_otlTxt","nb_otlTxtBorder",23,parent.ToggleOtlText )
  723. gBtnArr["nb_nts"].m_flagId= "notes_flag"
  724. gBtnArr["nb_nts"].SetFlag = NtsBtnSetFlag
  725. gBtnArr["nb_otlTxt"].ChangeIcon= GetOtlTxtState
  726. var sNext="Suivant",sPrev="Précédent",sEnd="Mettre fin au diaporama",sFont="Arial",sArrow="Flèche",sFreeform="Forme libre",sRect="Rectangle",sOval="Ovale"
  727. function ShowMenu()
  728. {
  729.         BuildMenu();
  730.         var doc=PPTSld.document.body,x=PPTSld.event.clientX+doc.scrollLeft,y=PPTSld.event.clientY+doc.scrollTop
  731.         m = PPTSld.document.all.item("ctxtmenu")
  732.         m.style.pixelLeft=x
  733.         if( (x+m.scrollWidth > doc.clientWidth)&&(x-m.scrollWidth > 0) )
  734.                 m.style.pixelLeft=x-m.scrollWidth
  735.         m.style.pixelTop=y
  736.         if( (y+m.scrollHeight > doc.clientHeight)&&(y-m.scrollHeight > 0) )
  737.                 m.style.pixelTop=y-m.scrollHeight
  738.         m.style.display=""
  739. }
  740. function _CM()
  741. {
  742.         if( !parent.IsFullScrMode() ) return;
  743.         if(!PPTSld.event.ctrlKey) {
  744.                 ShowMenu()
  745.                 return false
  746.         } else
  747.                 HideMenu()
  748. }
  749. function BuildMenu()
  750. {
  751.         if( PPTSld.document.all.item("ctxtmenu") ) return
  752.         var mObj=CreateItem( PPTSld.document.body )
  753.         mObj.id="ctxtmenu"
  754.         mObj.style.visibility="hidden"
  755.         var s=mObj.style
  756.         s.position="absolute"
  757.         s.cursor="default"
  758.         s.width="120px"
  759.         SetCMBorder(mObj,"menu","black")
  760.         var iObj=CreateItem( mObj )
  761.         SetCMBorder( iObj, "threedhighlight","threedshadow" )
  762.         iObj.style.padding=2
  763.         CreateMenuItem( iObj,sNext,M_GoNextSld,M_True )
  764.         CreateMenuItem( iObj,sPrev,M_GoPrevSld,M_HasPrevSld )
  765.         CreateSeparator( iObj )
  766.         CreateMenuItem( iObj,sEnd,M_End,M_True )
  767.         mObj.style.visibility="visible"
  768. }
  769. function Cancel() { window.event.cancelBubble=true; window.event.returnValue=false }
  770. function Highlight() { ChangeClr("activecaption","threedhighlight") }
  771. function Deselect() { ChangeClr("threedface","menutext") }
  772. function Perform()
  773. {
  774.         e=PPTSld.event.srcElement
  775.         if( e.type=="menuitem" && e.IsActive() )
  776.                 e.Action()
  777.         else
  778.                 PPTSld.event.cancelBubble=true
  779. }
  780. function ChangeClr( bg,clr )
  781. {
  782.         e=PPTSld.event.srcElement
  783.         if( e.type=="menuitem" && e.IsActive() ) {
  784.                 e.style.backgroundColor=bg
  785.                 e.style.color=clr
  786.         }
  787. }
  788. function M_HasPrevSld() { return( parent.HasPrevSld() ) }
  789. function M_GoNextSld() { if( gIsEndShow ) M_End(); else GoToNextSld() }
  790. function M_GoPrevSld() { if( gIsEndShow ) { history.back(); PPTSld.event.cancelBubble=true; } else GoToPrevSld() }
  791. function M_True() { return true }
  792. function M_End() { window.close( self ) }
  793. function CreateMenuItem( node,text,action,eval )
  794. {
  795.         var e=CreateItem( node )
  796.         e.type="menuitem"
  797.         e.Action=action
  798.         e.IsActive=eval
  799.         e.innerHTML=text
  800.         if( !e.IsActive() )
  801.                 e.style.color="threedshadow"
  802.         e.onclick=Perform
  803.         e.onmouseover=Highlight
  804.         e.onmouseout=Deselect
  805.         s=e.style;
  806.         s.fontFamily=sFont
  807.         s.fontSize="9pt"
  808.         s.paddingLeft=2
  809. }
  810. function CreateSeparator( node )
  811. {
  812.         var sObj=CreateItem( node )
  813.         SetCMBorder(sObj,"menu","menu")
  814.         var s=sObj.style
  815.         s.borderTopColor="threedshadow"
  816.         s.borderBottomColor="threedhighlight"
  817.         s.height=1
  818.         s.fontSize="0px"
  819. }
  820. function CreateItem( node )
  821. {
  822.         var elem=PPTSld.document.createElement("DIV")
  823.         node.insertBefore( elem )
  824.         return elem
  825. }
  826. function SetCMBorder( o,ltClr,rbClr )
  827. {
  828.         var s=o.style
  829.         s.backgroundColor="menu"
  830.         s.borderStyle="solid"
  831.         s.borderWidth=1
  832.         s.borderColor=ltClr+" "+rbClr+" "+rbClr+" "+ltClr
  833. }
  834.