function App(id, numOfPictures, numOfTexts,bgColor,progressBarForeColor,progressBarBgColor){this.WORKSPACE_COORD1= new Coord(WORKSPACE_LEFT,WORKSPACE_TOP)
this.WORKSPACE_COORD2= new Coord(WORKSPACE_RIGHT,WORKSPACE_BOTTOM)
this.WORKSPACE_SIZE= new Size(WORKSPACE_RIGHT - WORKSPACE_LEFT,WORKSPACE_BOTTOM - WORKSPACE_TOP)
this.TEXTS_ZINDEX_ZONE= 9000;this.PICTURES_ZINDEX_ZONE= 8000;this.id= id;this.type= APP_TYPE;this.appObjectModelPath= APP_NAME
this.preImages= new Array();this.layers= new Array();this.texts= new Array();this.embeddedTexts= new Array();this.links= new Array();this.pictures= new Array();this.embeddedPictures= new Array();this.menuSystems= new Array();this.menus= new Array();this.pages= new Array();this.iddle= true;this.iddleInterval= null;this.createPreImage= createPreImage;this.createLayer=createLayer
this.createLink=createLink
this.createPicture=createPicture
this.createText=createText
this.createMenuSystem=createMenuSystem
this.createMenu=createMenu
this.createPage=createPage
this.createCoord=createCoord
this.createSize=createSize
this.useStatus= useStatus
this.freezeStatus= freezeStatus
this.appOnStart= appOnStart
this.appOnLoad= appOnLoad
this.onPageUnload= appOnPageUnload;this.onPageLoad= appOnPageLoad;this.userOnPageLoad= userAppOnPageLoad;this.userOnPageUnload= userAppOnPageUnload;this.loadPage= loadPage;this.bringAll= bringAll
this.swapPages= swapPages
this.showProgressBar= showProgressBar
this.useText= useText;this.useTextAsLink= useTextAsLink
this.usePicture= usePicture;this.usePictureAsLink=usePictureAsLink
this.hideTexts= hideTexts;for(var i=0;i<PREIMAGES.length;i++){var tmpArr= PREIMAGES[i].split(",")
this.createPreImage(tmpArr[0],new Size(tmpArr[1], tmpArr[2]), tmpArr[3])}
for(var i=0;i<PAGES.length;i++){var tmpArr= PAGES[i].split(",");this.createPage(tmpArr[0], tmpArr[1])}
this.nextPage= this.mainPage= this.curPage= this.pages[0];this.previousPage= null;this.nextPageToBring= NEXT_PAGE_TO_BRING?(this.pages[NEXT_PAGE_TO_BRING]?this.pages[NEXT_PAGE_TO_BRING]:this.mainPage):this.mainPage;numOfPictures= (!numOfPictures?0:numOfPictures);for(var i=0;i<numOfTexts;i++) this.embeddedPictures[i]= this.createPicture(this.mainPage,"picture" + i);this.freePicture= this.curPicture= this.embeddedPictures[0];numOfTexts= (!numOfTexts?0:numOfTexts);for(var i=0;i<numOfTexts;i++) this.embeddedTexts[i]= this.createText(this.mainPage,"text" + i);this.freeText= this.curText= this.embeddedTexts[0];if(NO_TAPA){this.tapa=null}else{this.tapa= this.createLayer(this.mainPage,"tapa", new Coord(0, 0), new Size(1200, 1200),"",true,MAX_ZINDEX);this.tapa.css.zIndex= MAX_ZINDEX}
this.progressBarBack= this.createLayer(this.mainPage,"progressBarBack", new Coord(PROGRESS_BAR_LEFT_APP,PROGRESS_BAR_TOP_APP), new Size(PROGRESS_BAR_WIDTH, PROGRESS_BAR_HEIGHT),"#000000",true);this.progressBarFront= this.createLayer(this.mainPage,"progressBarFront", new Coord(PROGRESS_BAR_LEFT_APP+1,PROGRESS_BAR_TOP_APP+1), new Size(PROGRESS_BAR_WIDTH-2, PROGRESS_BAR_HEIGHT-2),"#2020AA",true);this.progressBarBack.sendToFront(true);this.progressBarFront.sendToFront(true);this.progressBarFront.resizeClip(0,PROGRESS_BAR_HEIGHT-2);CURRENT_PAGE_WARNING_WIDTH
this.currentPageWarningBack= this.createLayer(this.mainPage, "currentPageWarningBack",new Coord(CURRENT_PAGE_WARNING_LEFT,CURRENT_PAGE_WARNING_TOP), new Size(CURRENT_PAGE_WARNING_WIDTH,CURRENT_PAGE_WARNING_HEIGHT),"#000000");this.currentPageWarningFront= this.createLayer(this.mainPage, "currentPageWarningFront",new Coord(CURRENT_PAGE_WARNING_LEFT+1,CURRENT_PAGE_WARNING_TOP+1), new Size(CURRENT_PAGE_WARNING_WIDTH-2, CURRENT_PAGE_WARNING_HEIGHT-2),"#FFFFE7");this.currentPageWarningBack.css.zIndex= 12000;this.currentPageWarningFront.css.zIndex= 12001;this.appOnStart();this.mainPage.bring();return this}
function createCoord(x,y){ return new Coord(x,y) }
function createSize(width,height){ return new Size(width,height) }
function createPreImage(id, size,path){ return new PreImage(this,id, size,path) }
function createLayer(page, id, pos, size, color, visible,layerZone){return new Layer(page,id, pos, size, color, visible,layerZone)}
function createLink(layer, id, preImageOff, evalOnClick, label, alt, preImageOn, preImageSel, target, evalOnMouseOver, evalOnMouseOut,size){return new Link(layer, id, preImageOff, evalOnClick, label, alt, preImageOn, preImageSel, target, evalOnMouseOver, evalOnMouseOut,size)}
function createPicture( page, id, pos, color, pic, alt, free,layerZone){return new Picture(page, id, pos, color, pic, alt, free,layerZone)}
function createText(page, id,pos,size,layerZone){return new Text(page,id,pos,size,layerZone)}
function createMenu(page, menuSys, id, pos, size, color, visible,layerZone){return new Menu( page, menuSys, id, pos, size, color, visible,layerZone)}
function createMenuSystem(page,id, vertical,slidesVertically){return new MenuSystem(page,id, vertical,slidesVertically)}
function createPage(id,fileName){return new Page(this,id,fileName)}
function useTextAsLink(content,pos,size,hideTheRest,locking,href,target,label){href= "HREF='" + (target?(target=="mail"?"mailto:":""):"javascript:") + (href?href:(target?"#":"void()")) + "' "
target= target?"target='" + (target=="mail"?"_new":target) + "' ":" ";label= label?'"' + label + '"':null;label= label?"onMouseOver='theApp.iddle=false;theApp.useStatus(" + label + ")' onMouseOut='theApp.iddle=true;theApp.useStatus()'":"";content= "<A " + href + target + label + " >" + content + "</A>"
return this.useText(content,pos,size,hideTheRest,locking,true,true)}
function useText(content,pos,size,hideTheRest,locking,noShadow,noFade,href,target){if(hideTheRest) this.hideTexts();var theFreeText= this.freeText
if(locking)theFreeText.locked=true;var tmp;for(var i=1;i<this.embeddedTexts.length;i++){tmp= (theFreeText.index+i)%this.embeddedTexts.length
if(!this.embeddedTexts[tmp].locked && !this.embeddedTexts[tmp].hiding && !this.embeddedTexts[tmp].showing)break}
this.freeText= this.embeddedTexts[tmp]
if(!pos || pos.type!=COORD_TYPE)pos=this.WORKSPACE_COORD1;theFreeText.moveTo(pos.x,pos.y);if(!size || size.type!=SIZE_TYPE)size=this.WORKSPACE_SIZE;theFreeText.resize(size.width,size.height);theFreeText.html= content
theFreeText.show(noShadow,noFade)
theFreeText.page= this.curPage
this.curText= theFreeText
return theFreeText}
function hideTexts(evenLockedTexts){for(var i=0;i<this.embeddedTexts.length;i++) {if(evenLockedTexts || (!evenLockedTexts && !this.texts[i].locked) ){this.embeddedTexts[i].hide(true);this.embeddedTexts[i].page=null;this.embeddedTexts[i].locked=false}}}
function usePictureAsLink(id, preImageOff, evalOnClick, label, preImageOn, preImageSel, target, evalOnMouseOver, evalOnMouseOut,size,pos,alt,frameWidth,frameColor){var pic= this.freePicture.addLink(id,preImageOff, evalOnClick, label, alt, preImageOn, preImageSel, target, evalOnMouseOver, evalOnMouseOut,size,pos,frameWidth,frameColor)
return (this.usePicture(pic,alt,pos,frameWidth,frameColor) )}
function usePicture(pic,alt, pos,frameWidth,frameColor){this.freePicture.use(pic,alt, pos,frameWidth,frameColor)
this.curPicture= this.freePicture
var tmp;for(var i=0;i<this.embeddedPictures.length;i++){tmp= (this.freePicture.index+1)%this.embeddedPictures.length
if(this.embeddedPictures[tmp].page!=this.freePicture.page)break}
this.freePicture= this.embeddedPictures[tmp]
return this.curPicture}
function loadPage(page){if(page && this.pages[page]){if(this.pages[page]==this.curPage){this.currentPageWarningBack.sendToFront(true);this.currentPageWarningBack.show(true);this.currentPageWarningFront.sendToFront(true);this.currentPageWarningFront.show(true);var tmp= this.currentPageWarningBack.appObjectModelPath + ".hide(true);" +this.currentPageWarningFront.appObjectModelPath + ".hide(true);" +this.currentPageWarningBack.appObjectModelPath + ".sendToBack(true);" +this.currentPageWarningFront.appObjectModelPath + ".sendToBack(true);"
window.setTimeout(tmp,2000)}else{if(this.tapa)this.tapa.show(true)
this.nextPage= this.pages[page]
this.nextPage.bring();this.nextPage.open()}}}
function showProgressBar(progress,inc,tope){if(NO_PROGRESS_BAR && !progress){progress= tope= inc= 1}
if(!progress){var inc= PAGE_RELEASE_HOLD_TIME
if(this.nextPage != this.mainPage){this.progressBarBack.moveTo(PROGRESS_BAR_LEFT_PAGE,PROGRESS_BAR_TOP_PAGE);this.progressBarFront.moveTo(PROGRESS_BAR_LEFT_PAGE+1,PROGRESS_BAR_TOP_PAGE+1);inc=inc/ 2}
this.progressBarFront.resizeClip(0,PROGRESS_BAR_HEIGHT-2);this.progressBarFront.show(true);this.progressBarBack.show(true);this.progressBarBack.rewrite("<DIV class='" + (ns4?"normaldataNS":"normaldataIE") + "'>" + TEXT_PROGRESS_BAR + this.nextPage.file + "...</DIV>","middle","center")
this.progressBarFront.rewrite("<DIV class='" + (ns4?"normaldataNS":"normaldataIE") + "'>" + TEXT_PROGRESS_BAR + this.nextPage.file + "...</DIV>","middle","center")
progress=1
inc= parseInt(inc*2000/ (PROGRESS_BAR_WIDTH-2),10)
var tope= parseInt( (PROGRESS_BAR_WIDTH-2)/2,10)}
if(progress<tope){this.progressBarFront.resizeClipBy(2,0);window.setTimeout(this.appObjectModelPath + ".showProgressBar(" + (progress+1) + "," + inc + "," + tope + ")",inc)}else{if(progress==tope){this.nextPage.complete= true;this.progressBarFront.resizeClip(PROGRESS_BAR_WIDTH-2,PROGRESS_BAR_HEIGHT-2);window.setTimeout(this.appObjectModelPath + ".showProgressBar(" + (progress+1) + "," + inc + "," + tope + ")",1000)}else{this.progressBarFront.hide(true);this.progressBarBack.hide(true);if(this.nextPage==this.mainPage)
this.appOnLoad()
else{this.swapPages()}}}}
function bringAll(){if(this.nextPageToBring){var ind= this.nextPageToBring.index
var pageToBring= this.nextPageToBring
this.nextPageToBring= (ind+1<this.pages.length)?this.pages[ind+1]:null;if(pageToBring.complete){this.bringAll()}else{var numOfCachedImgs= pageToBring.bring("bringAll");if(numOfCachedImgs>0)
window.setTimeout(this.appObjectModelPath + ".bringAll()",7000);else
this.bringAll()}}}
function appOnPageLoad(){this.currentPageWarningFront.rewrite("<font face='Arial' size='1'>" + TEXT_REQUIRED_PAGE_IS_CURRENT + "</font>","middle","center")
if(this.nextPage && !this.curPage){this.curPage= this.nextPage;this.nextPage= null;for(var i=0;i<this.curPage.layers.length;i++){var lyr=this.curPage.layers[i]
if(lyr.page==this.curPage){if(!lyr.locked){if(lyr.ownerObject)
lyr.ownerObject.show();else
lyr.renderAndShow()}}}
this.userOnPageLoad();eval(this.curPage.loadFunction);if(this.tapa)window.setTimeout(this.tapa.appObjectModelPath + ".hide(true)")}}
function appOnPageUnload(stage){if(this.nextPage){this.previousPage= this.curPage
this.curPage= null;if(this.previousPage!=this.mainPage){this.hideTexts(true)
for(var i=0;i<this.embeddedPictures.length;i++){if(this.embeddedPictures[i].page== this.previousPage){this.embeddedPictures[i].hide();this.embeddedPictures[i].page= null;this.embeddedPictures[i].layer.page= null}}
if(this.previousPage)
for(var i=0;i<this.previousPage.layers.length;i++)this.previousPage.layers[i].hide();this.userOnPageUnload()}}}
function swapPages(){if(this.nextPage){if(!this.nextPage.complete){this.nextPage.bring();this.showProgressBar()}else{this.onPageUnload();window.setTimeout(this.appObjectModelPath + ".onPageLoad()",1500)}}}
function useStatus(label){this.freezeStatus()
window.setTimeout('window.status="' + (label?label:"") + '";',0)
this.iddleInterval= window.setInterval('if(theApp.iddle){window.status=TEXT_STATUS_BAR_IDDLE;theApp.freezeStatus()}',2000)}
function freezeStatus(){if(this.iddleInterval) window.clearInterval(this.iddleInterval)}
