package com.oxylusflash.book { import caurina.transitions.Tweener; import com.oxylusflash.events.ParamEvent; import com.oxylusflash.framework.events.KeyEvent; import com.oxylusflash.framework.keyboard.Key; import com.oxylusflash.utils.NumberUtil; import com.oxylusflash.utils.Shortcuts; import flash.display.StageDisplayState; import flash.net.FileReference; import flash.net.URLRequest; import flash.display.Sprite; import flash.events.Event; import flash.events.FocusEvent; import flash.events.IOErrorEvent; import flash.events.KeyboardEvent; import flash.events.MouseEvent; import flash.events.SecurityErrorEvent; import flash.net.URLLoader; import flash.ui.Keyboard; import com.oxylusflash.events.DropMenuEvent; import com.oxylusflash.AVPlayback.AudioPlaybackController; import com.oxylusflash.AVPlayback.events.PlaybackEvent; public class OptionsBar extends Sprite { public var bgMc:Sprite; // Groups. public var leftGroupMc:BarGroup = new LibBarGroup; public var midGroupMc:BarGroup = new LibBarGroup; public var rightGroupMc:BarGroup = new LibBarGroup; // Buttons. public var btnPrint:BarButtonMenu; public var btnSummary:BarButtonToggle; public var btnAuto:BarButtonToggle; public var btnSound:BarButtonToggle; public var btnSend:BarButton; public var btnContact:BarButton; public var btnAbout:BarButton; public var btnPDF:BarButton; public var btnFirst:BarButton; public var btnPrevious:BarButton; public var inpPage:InputField; public var btnNext:BarButton; public var btnLast:BarButton; public var btnZoom:BarButtonToggle; public var btnFullscreen:BarButtonTwoStates; // Auto flip timer pie. private var autoTimerPieNormal:TimerPie; private var autoTimerPieOver:TimerPie; public var apc:AudioPlaybackController = new AudioPlaybackController(); private var playlistLoader:URLLoader; private var playlist:Array = []; private var numSongs:int = 0; private var crtSong:int = 0; private var plLoadInit:Boolean = false; // Volume. private static const VOLUME_FADE_IN:int = 1; private static const VOLUME_FADE_OUT:int = 0; private var volumeStatus:int = VOLUME_FADE_OUT; private var soundIsOn:Boolean = false; private static const GROUP_MARGIN:Number = 10; // Print. private static const PRINT_LEFT:int = 3; private static const PRINT_RIGHT:int = 2; private static const PRINT_BOTH:int = 1; private static const PRINT_BOOK:int = 0; // Download pdf private var fr:FileReference; /** * Options bar at the bottom. */ public function OptionsBar() { bgMc.cacheAsBitmap = true; } /** * Init * @param groups Groups xml. */ public function init(groups:XML):void { var len:int = groups.group.length(); var groupNode:XML; var groupVis:Boolean; for (var i:int = 0; i < len; i++) { groupNode = groups.group[i]; groupVis = groupNode.@visible == "true"; switch(String(groupNode.@id)) { case "leftGroup": addLeftGroup(); populateGroup(leftGroupMc, groupNode.item); leftGroupMc.visible = groupVis; break; case "midGroup": addMidGroup(); populateGroup(midGroupMc, groupNode.item); midGroupMc.visible = groupVis; break; case "rightGroup": addRightGroup(); populateGroup(rightGroupMc, groupNode.item); rightGroupMc.visible = groupVis; break; } } // AUDIO apc.volume = 0; apc.bufferTime = Global.xmlBgMusic.buffer; apc.autoPlay = false; apc.repeat = false; apc.addEventListener(PlaybackEvent.ERROR, apc_errorHandler, false, 0, true); apc.addEventListener(PlaybackEvent.PLAYBACK_READY, apc_playbackReadyHandler, false, 0, true); apc.addEventListener(PlaybackEvent.PLAYBACK_TIME_UPDATE, apc_playbackTimeUpdateHandler, false, 0, true); apc.addEventListener(PlaybackEvent.PLAYBACK_COMPLETE, apc_playbackCompleteHandler, false, 0, true); playlistLoader = new URLLoader(); playlistLoader.addEventListener(IOErrorEvent.IO_ERROR, playlistLoader_ioErrorHandler, false, 0, true); playlistLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, playlistLoader_securityErrorHandler, false, 0, true); playlistLoader.addEventListener(Event.COMPLETE, playlistLoader_completeHandler, false, 0, true); playlistLoader.load(new URLRequest(Global.xmlBgMusic.playlist)); Global.theBook.addEventListener(BookHolder.PAGE_VIEW_UPDATE, theBook_pageViewUpdateHandler, false, 0, true); Global.theBook.addEventListener(BookHolder.AUTO_FLIP_TICK, theBook_autoFlipTickHandler, false, 0, true); Global.theBook.addEventListener(BookHolder.FLIP_READY, theBook_flipReadyHandler, false, 0, true); } /** * Populate a group. * @param group Specify the group. * @param items Items to be added to the group. */ private function populateGroup(group:BarGroup, items:XMLList):void { var len:int = items.length(); var itemNode:XML; for (var i:int = 0; i < len; i++) { itemNode = items[i]; switch(String(itemNode.@id)) { case "separator": addSeparator(group); break; case "spacing": addSpacing(group, Number(itemNode.@ammount)); break; case "printButton": addPrintButton(group); break; case "summaryButton": addSummaryButton(group); break; case "autoFlipButton": addAutoFlipButton(group); break; case "soundButton": addSoundButton(group); break; case "sendToFriendButton": addSendToFriendButton(group); break; case "contactButton": addContactButton(group); break; case "aboutButton": addAboutButton(group); break; case "pdfButton": addPDFButton(group); break; case "firstPageButton": addFirstPageButton(group); break; case "previousPageButton": addPreviousPageButton(group); break; case "pageInput": addPageInput(group, Number(itemNode.@width)); break; case "nextPageButton": addNextPageButton(group); break; case "lastPageButton": addLastPageButton(group); break; case "zoomButton": addZoomButton(group); break; case "fullscreenButton": addFullscreenButton(group); break; } } if (!btnSummary) { btnSummary = new LibButtonSummary; btnSummary.isOn = Global.xmlSummaryPanel.visible; } if (!btnAuto) { btnAuto = new LibButtonAuto; btnAuto.isOn = Global.xmlAutoFlip.autoStart; } if (!btnSound) { btnSound = new LibButtonVolume; if (Global.xmlBgMusic.autoLoad && Global.xmlBgMusic.autoPlay) { btnSound.isOn = true; soundIsOn = true; } } if (!btnSend) btnSend = new LibButtonSend; if (!btnContact) btnContact = new LibButtonContact; if (!btnAbout) btnAbout = new LibButtonAbout; if (!btnPDF) btnPDF = new LibButtonPDF; if (!btnFirst) btnFirst = new LibButtonFirst; if (!btnPrevious) btnPrevious = new LibButtonPrevious; if (!inpPage) inpPage = new LibInputField; if (!btnNext) btnNext = new LibButtonNext; if (!btnLast) btnLast = new LibButtonLast; if (!btnZoom) btnZoom = new LibButtonZoom; if (!btnFullscreen) btnFullscreen = new LibButtonFullscreen; Key.listenFor(KeyEvent.SHORTCUT_INIT, keyPressHandler); } /* Keyboard shortcuts */ private function keyPressHandler(e:KeyEvent):void { if (!Global.theBook.jumpTimer.running) { if (e.keyShortcut.equals(Shortcuts.LEFT)) { btnPrevious_clickHandler(null); } else if (e.keyShortcut.equals(Shortcuts.RIGHT)) { btnNext_clickHandler(null); } else if (e.keyShortcut.equals(Shortcuts.UP)) { btnFirst_clickHandler(null); } else if (e.keyShortcut.equals(Shortcuts.DOWN)) { btnLast_clickHandler(null); } } } //{ ADD ITEMS private function addLeftGroup():void { this.addChild(leftGroupMc); leftGroupMc.x = GROUP_MARGIN; leftGroupMc.y = Math.round((this.height - leftGroupMc.height) * 0.5); } private function addMidGroup():void { this.addChild(midGroupMc); midGroupMc.y = Math.round((this.height - midGroupMc.height) * 0.5); } private function addRightGroup():void { this.addChild(rightGroupMc); rightGroupMc.y = Math.round((this.height - rightGroupMc.height) * 0.5); } private function addSeparator(group:BarGroup):void { group.addSeparator(); } private function addSpacing(group:BarGroup, ammount:Number):void { group.addSpacing(ammount); } private function addPrintButton(group:BarGroup):void { btnPrint = group.addItem(new LibButtonPrint); btnPrint.addEventListener(DropMenuEvent.ITEM_SELECT, btnPrint_itemSelectHandler, false, 0, true); btnPrint.addMenuItems([ { label: Global.xmlTranslate.str26, id: PRINT_BOOK }, { label: Global.xmlTranslate.str25, id: PRINT_BOTH }, { label: Global.xmlTranslate.str20, id: PRINT_RIGHT }, { label: Global.xmlTranslate.str0, id: PRINT_LEFT } ]); updatePrintMenuItems(); } private function updatePrintMenuItems():void { if (btnPrint) { DropMenuItem(btnPrint.dropMenu.items[PRINT_LEFT]).mouseEnabled = Global.theBook.leftPageIndex > -1; DropMenuItem(btnPrint.dropMenu.items[PRINT_RIGHT]).mouseEnabled = Global.theBook.leftPageIndex < Global.theBook.numPages - 1; DropMenuItem(btnPrint.dropMenu.items[PRINT_BOTH]).mouseEnabled = Global.theBook.leftPageIndex < Global.theBook.numPages - 1 && Global.theBook.leftPageIndex > -1; DropMenuItem(btnPrint.dropMenu.items[PRINT_BOOK]).mouseEnabled = Global.theBook.numPages > 0; } } private function addSummaryButton(group:BarGroup):void { btnSummary = group.addItem(new LibButtonSummary); btnSummary.addEventListener(MouseEvent.CLICK, btnSummary_clickHandler, false, 0, true); btnSummary.isOn = Global.xmlSummaryPanel.visible; } private function addAutoFlipButton(group:BarGroup):void { btnAuto = group.addItem(new LibButtonAuto); btnAuto.addEventListener(MouseEvent.CLICK, btnAuto_clickHandler, false, 0, true); btnAuto.isOn = Global.xmlAutoFlip.autoStart; autoTimerPieNormal = btnAuto.normalState.addChild(new TimerPie(TimerPie.NOMRAL_COLOR)) as TimerPie; autoTimerPieNormal.x = Math.round(btnAuto.normalState.width * 0.5); autoTimerPieNormal.y = Math.round(btnAuto.normalState.height * 0.5); autoTimerPieOver = btnAuto.overState.addChild(new TimerPie(TimerPie.OVER_COLOR)) as TimerPie; autoTimerPieOver.x = Math.round(btnAuto.overState.width * 0.5); autoTimerPieOver.y = Math.round(btnAuto.overState.height * 0.5); } private function addSoundButton(group:BarGroup):void { btnSound = group.addItem(new LibButtonVolume); btnSound.addEventListener(MouseEvent.CLICK, btnSound_clickHandler, false, 0, true); if (Global.xmlBgMusic.autoLoad && Global.xmlBgMusic.autoPlay) { btnSound.isOn = true; soundIsOn = true; } } private function addSendToFriendButton(group:BarGroup):void { btnSend = group.addItem(new LibButtonSend); btnSend.addEventListener(MouseEvent.CLICK, btnSend_clickHandler, false, 0, true); } private function addContactButton(group:BarGroup):void { btnContact = group.addItem(new LibButtonContact); btnContact.addEventListener(MouseEvent.CLICK, btnContact_clickHandler, false, 0, true); } private function addAboutButton(group:BarGroup):void { btnAbout = group.addItem(new LibButtonAbout); btnAbout.addEventListener(MouseEvent.CLICK, btnAbout_clickHandler, false, 0, true); } private function addPDFButton(group:BarGroup):void { btnPDF = group.addItem(new LibButtonPDF); btnPDF.addEventListener(MouseEvent.CLICK, btnPDF_clickHandler, false, 0, true); } private function addFirstPageButton(group:BarGroup):void { btnFirst = group.addItem(new LibButtonFirst); btnFirst.addEventListener(MouseEvent.CLICK, btnFirst_clickHandler, false, 0, true); } private function addPreviousPageButton(group:BarGroup):void { btnPrevious = group.addItem(new LibButtonPrevious); btnPrevious.addEventListener(MouseEvent.CLICK, btnPrevious_clickHandler, false, 0, true); } private function addPageInput(group:BarGroup, inputWidth:Number):void { inpPage = new LibInputField; inpPage.width = inputWidth; inpPage.textField.restrict = "0-9"; inpPage.addEventListener(InputField.SUBMIT, inpPage_eventHandler, false, 0, true); inpPage.addEventListener(InputField.CANCEL, inpPage_eventHandler, false, 0, true); inpPage.addEventListener(InputField.FOCUS, inpPage_eventHandler, false, 0, true); inpPage.addEventListener(InputField.BLUR, inpPage_eventHandler, false, 0, true); group.addItem(inpPage); } private function addNextPageButton(group:BarGroup):void { btnNext = group.addItem(new LibButtonNext); btnNext.addEventListener(MouseEvent.CLICK, btnNext_clickHandler, false, 0, true); } private function addLastPageButton(group:BarGroup):void { btnLast = group.addItem(new LibButtonLast); btnLast.addEventListener(MouseEvent.CLICK, btnLast_clickHandler, false, 0, true); } private function addZoomButton(group:BarGroup):void { btnZoom = group.addItem(new LibButtonZoom); btnZoom.addEventListener(MouseEvent.CLICK, btnZoom_clickHandler, false, 0, true); } private function addFullscreenButton(group:BarGroup):void { btnFullscreen = group.addItem(new LibButtonFullscreen); btnFullscreen.addEventListener(MouseEvent.CLICK, btnFullscreen_clickHandler, false, 0, true); if (stage) addResizeHandler(); else this.addEventListener(Event.ADDED_TO_STAGE, addResizeHandler, false, 0, true); } //} /** * Book event handlers. */ private function theBook_pageViewUpdateHandler(e:Event):void { if (inpPage) updatePageInput(); if (btnFirst) btnFirst.mouseEnabled = Global.theBook.leftPageIndex > -1; if (btnPrevious) btnPrevious.mouseEnabled = btnFirst.mouseEnabled; if (btnLast) btnLast.mouseEnabled = Global.theBook.leftPageIndex < Global.theBook.numPages - 1; if (btnNext) btnNext.mouseEnabled = btnLast.mouseEnabled; updatePrintMenuItems(); } private function theBook_autoFlipTickHandler(e:ParamEvent):void { if (autoTimerPieNormal) { autoTimerPieNormal.count = e.params.count; autoTimerPieOver.count = e.params.count; } } private function theBook_flipReadyHandler(e:Event):void { if (Global.xmlAutoFlip.autoStart) { Global.theBook.startAutoFlip(); } } /** * Add tooltips. */ public function initTooltips():void { //if (btnPrint) btnPrint.tooltip = Global.xmlTranslate.str0; if (btnSummary) btnSummary.tooltip = Global.xmlTranslate.str1; if (btnAuto) btnAuto.tooltip = Global.xmlTranslate.str2; if (btnSound) btnSound.tooltip = Global.xmlTranslate.str3; if (btnSend) btnSend.tooltip = Global.xmlTranslate.str4; if (btnContact) btnContact.tooltip = Global.xmlTranslate.str56; if (btnAbout) btnAbout.tooltip = Global.xmlTranslate.str57; if (btnPDF) btnPDF.tooltip = Global.xmlTranslate.str71; if (btnFirst) btnFirst.tooltip = Global.xmlTranslate.str5; if (btnPrevious) btnPrevious.tooltip = Global.xmlTranslate.str6; if (inpPage) inpPage.tooltip = Global.xmlTranslate.str13; if (btnNext) btnNext.tooltip = Global.xmlTranslate.str7; if (btnLast) btnLast.tooltip = Global.xmlTranslate.str8; if (btnZoom) btnZoom.tooltip = Global.xmlTranslate.str14; if (btnFullscreen) btnFullscreen.tooltip = Global.xmlTranslate.str9; } private function playlistLoader_ioErrorHandler(e:IOErrorEvent):void { } private function playlistLoader_securityErrorHandler(e:SecurityErrorEvent):void { } private function playlistLoader_completeHandler(e:Event):void { var xml:XML = new XML(playlistLoader.data); playlistLoader = null; numSongs = xml.song.length(); for (var i:int = 0; i < numSongs; i++) { playlist.push(xml.song[i].@src); } xml = null; crtSong = 0; if (Global.xmlBgMusic.autoLoad && playlist.length > 0) { apc.media = playlist[crtSong]; } if (playlist.length == 0) btnSound.mouseEnabled = btnSound.mouseChildren = false; } public function get apcVolume():Number { return apc.volume; } public function set apcVolume(value:Number):void { apc.volume = Math.round(value * 100) / 100; if (apc.volume == 0) { if (apc.totalTime - apc.currentTime > 1 && soundIsOn) { apc.pause(); } } else { apc.play(); } } /** * Audio handlers. */ private function apc_errorHandler(e:PlaybackEvent):void { } private function apc_playbackReadyHandler(e:PlaybackEvent):void { if (!plLoadInit) plLoadInit = true; if (soundIsOn) { audioFadeIn(); } } private function apc_playbackTimeUpdateHandler(e:PlaybackEvent):void { if (apc.currentTime > apc.totalTime - Global.xmlBgMusic.fadeTime) { audioFadeOut(); } } private function apc_playbackCompleteHandler(e:PlaybackEvent):void { if (soundIsOn) { crtSong = (crtSong + 1) % numSongs; apc.media = playlist[crtSong]; } } /** * Audio volume fade. */ private function audioFadeIn():void { if (volumeStatus == VOLUME_FADE_OUT) { volumeStatus = VOLUME_FADE_IN; Tweener.addTween(this, { apcVolume: Global.xmlBgMusic.volume, time: Global.xmlBgMusic.fadeTime, transition: "easeinquad" } ); } } private function audioFadeOut():void { if (volumeStatus == VOLUME_FADE_IN) { volumeStatus = VOLUME_FADE_OUT; Tweener.addTween(this, { apcVolume: 0, time: Global.xmlBgMusic.fadeTime, transition: "easeoutquad" } ); } } /** * Buttons handlers. */ private function btnPrint_itemSelectHandler(e:DropMenuEvent):void { switch(e.id) { case PRINT_LEFT: Global.theBook.printLeftPage(); break; case PRINT_RIGHT: Global.theBook.printRightPage(); break; case PRINT_BOTH: Global.theBook.printBothPages(); break; case PRINT_BOOK: Global.theBook.printAllPages(); break; } } private function btnSummary_clickHandler(e:MouseEvent):void { if (btnSummary.isOn) { Global.summList.show(); } else { Global.summList.hide(); } } public function btnAuto_clickHandler(e:MouseEvent = null):void { if (btnAuto.isOn) { Global.theBook.startAutoFlip(); } else { Global.theBook.stopAutoFlip(); autoTimerPieNormal.count = TimerPie.DEFAULT_COUNT; autoTimerPieOver.count = TimerPie.DEFAULT_COUNT; } } private function btnSound_clickHandler(e:MouseEvent):void { soundIsOn = btnSound.isOn; if (!plLoadInit) { if (!apc.isBuffering) { apc.media = playlist[crtSong]; } } else { if (btnSound.isOn) audioFadeIn(); else audioFadeOut(); } } private function btnSend_clickHandler(e:MouseEvent):void { Global.sendToFriend.show(); } private function btnContact_clickHandler(e:MouseEvent):void { Global.contactUs.show(); } private function btnAbout_clickHandler(e:MouseEvent):void { Global.aboutUs.show(); } private function btnPDF_clickHandler(e:MouseEvent):void { //trace(Global.pdfVersion); if (!fr) fr = new FileReference; try { fr.download(new URLRequest(Global.pdfVersion)); } catch(error:Error) { } } private function btnFirst_clickHandler(e:MouseEvent):void { Global.theBook.jumpToFirst(); if (Global.xmlAutoFlip.stopOnUserFlip && Global.optBar.btnAuto.isOn) { Global.optBar.btnAuto.isOn = false; Global.optBar.btnAuto_clickHandler(); } } private function btnPrevious_clickHandler(e:MouseEvent):void { Global.theBook.prevPage(); if (Global.xmlAutoFlip.stopOnUserFlip && Global.optBar.btnAuto.isOn) { Global.optBar.btnAuto.isOn = false; Global.optBar.btnAuto_clickHandler(); } } private function btnNext_clickHandler(e:MouseEvent):void { Global.theBook.nextPage(); if (Global.xmlAutoFlip.stopOnUserFlip && Global.optBar.btnAuto.isOn) { Global.optBar.btnAuto.isOn = false; Global.optBar.btnAuto_clickHandler(); } } private function btnLast_clickHandler(e:MouseEvent):void { Global.theBook.jumpToLast(); if (Global.xmlAutoFlip.stopOnUserFlip && Global.optBar.btnAuto.isOn) { Global.optBar.btnAuto.isOn = false; Global.optBar.btnAuto_clickHandler(); } } /** * Zoom. */ private function btnZoom_clickHandler(e:MouseEvent):void { if (btnZoom.isOn) { Global.pageZoomIsOn = true; //Global.zoomCursor.state = CustomCursor.VISIBLE; } else { Global.pageZoomIsOn = false; //Global.zoomCursor.state = CustomCursor.INVISIBLE; } } /** * Fullscreen. */ private function addResizeHandler(e:Event = null):void { this.removeEventListener(Event.ADDED_TO_STAGE, addResizeHandler); stage.addEventListener(Event.RESIZE, stage_resizeHandler, false, 0, true); } private function btnFullscreen_clickHandler(e:MouseEvent):void { if (stage.displayState != StageDisplayState.FULL_SCREEN) { stage.displayState = StageDisplayState.FULL_SCREEN; } else { stage.displayState = StageDisplayState.NORMAL; } } private function stage_resizeHandler(e:Event):void { if (stage.displayState != StageDisplayState.FULL_SCREEN) { btnFullscreen.state = BarButtonTwoStates.FIRST_STATE; } else { btnFullscreen.state = BarButtonTwoStates.SECOND_STATE; } } /** * Page input handlers. */ private function inpPage_eventHandler(e:Event):void { switch(e.type) { case InputField.FOCUS: inpPage.label = ""; break; case InputField.SUBMIT: var jumpToPage:Number = Number(inpPage.label); if (!isNaN(jumpToPage) && !inpPage.isBlank && jumpToPage >= 1 && jumpToPage <= Global.theBook.numPages) { Global.theBook.jumpTo(jumpToPage - 1); if (Global.xmlAutoFlip.stopOnUserFlip && Global.optBar.btnAuto.isOn) { Global.optBar.btnAuto.isOn = false; Global.optBar.btnAuto_clickHandler(); } } break; //case InputField.CANCEL: break; //case InputField.BLUR: break; } updatePageInput(); } /** * Overrides. */ override public function get width():Number { return bgMc.width; } override public function set width(value:Number):void { value = Math.round(value); if (bgMc.width != value) { bgMc.width = value; } updateGroupsPos(); } override public function get height():Number { return visible ? bgMc.height : 0; } override public function set height(value:Number):void { value = Math.round(value); if (bgMc.height != value) { bgMc.height = value; } } /** * Other. */ public function updateGroupsPos():void { if (midGroupMc) midGroupMc.x = Math.round((bgMc.width - midGroupMc.width) * 0.5); if (rightGroupMc) rightGroupMc.x = bgMc.width - GROUP_MARGIN - rightGroupMc.width; } public function updatePageInput():void { if (!inpPage.hasFocus) { inpPage.value = Global.theBook.leftPageIndex; var pageInputStr:String = ""; if (Global.theBook.numPages > 1) { var numPagesStr:String = String(Global.theBook.numPages); var leftPageIdxStr:String = ""; var rightPageIdxStr:String = ""; if (inpPage.value >= 0) leftPageIdxStr += String(inpPage.value + 1); if (inpPage.value + 2 < Global.theBook.numPages) rightPageIdxStr += String(inpPage.value + 2); if (leftPageIdxStr != "" && rightPageIdxStr != "") { pageInputStr = Global.xmlTranslate.str10; pageInputStr = pageInputStr.replace(/%LEFT_PAGE%/g, leftPageIdxStr); pageInputStr = pageInputStr.replace(/%RIGHT_PAGE%/g, rightPageIdxStr); pageInputStr = pageInputStr.replace(/%TOTAL_PAGES%/g, numPagesStr); } else if (leftPageIdxStr != "") { pageInputStr = Global.xmlTranslate.str11; pageInputStr = pageInputStr.replace(/%FIRST_PAGE%/g, leftPageIdxStr); pageInputStr = pageInputStr.replace(/%TOTAL_PAGES%/g, numPagesStr); } else { pageInputStr = Global.xmlTranslate.str12; pageInputStr = pageInputStr.replace(/%LAST_PAGE%/g,rightPageIdxStr); pageInputStr = pageInputStr.replace(/%TOTAL_PAGES%/g, numPagesStr); } } inpPage.label = pageInputStr; } } } }