function Menu(page, menuSys, id, pos, size, color, visible, layerZone){this.page= page;this.app= this.page.app;if(this.app.menus[id])return this.app.menus[id]
this.id= id
this.type= MENU_TYPE
this.index= this.app.menus.length;this.appObjectModelPath= APP_NAME + ".menus[" + this.index + "]"
this.menuSystem= menuSys;this.size= size.getCopy();this.pos= pos.getCopy();this.layer= this.app.createLayer(page, "mnu" + id, this.pos, this.size, color, visible,layerZone);this.layer.ownerObject= this
this.posExtreme1= pos.getCopy();this.posExtreme2= pos.getCopy().add(size);this.elements= new Array();this.mainInExtreme2= true;this.speed= (menuSys?menuSys.speed:MENU_SPEED);this.smooth= (menuSys?menuSys.smooth:MENU_SMOOTH);this.vertical= (menuSys?menuSys.vertical:true);this.slidesVertically= (menuSys?menuSys.slidesVertically:true);this.smoothArrival= (menuSys?menuSys.smoothArrival:true);this.centered= (menuSys?menuSys.centered:true);this.html= ""
this.isInExtreme1= false;this.isInExtreme2= false;this.addElement= addElementMenu;this.addLink= addLinkMenu
this.slideToTop= slideToTop;this.slideToBottom= slideToBottom;this.slideToLeft= slideToLeft;this.slideToRight= slideToRight;this.slideEspiral= slideEspiral;this.show= showMenu;this.hide= this.layer.hide;this.app.menus[this.app.menus.length]= this.app.menus[id]= this;return this}
function showMenu(noFade){this.layer.rewrite(this.html,'middle','center');this.layer.show(noFade)}
function addElementMenu(preImageOrLink, size){var elemHtml;if(preImageOrLink.type==LINK_TYPE){elemHtml= this.elements[this.elements.length]= preImageOrLink.getHtml();preImageOrLink.menu= this}else{if(preImageOrLink.type==PREIMAGE_TYPE){this.page.assignPreImage(preImageOrLink)
elemHtml= this.elements[this.elements.length]= preImageOrLink.getHtml(size)}else{if(this.app.preImages[preImageOrLink]){this.page.assignPreImage(this.app.preImages[preImageOrLink])
elemHtml= this.elements[this.elements.length]= this.app.preImages[preImageOrLink].getHtml(size)}else{return}}}
var br= (this.html?(this.vertical?"<br>":""):"");if(this.mainInExtreme2)this.html= this.mainInExtreme2?(elemHtml + br + this.html):this.html + br + elemHtml}
function addLinkMenu(id, preImageOff, evalOnClick, label, alt, preImageOn, preImageSel, target, evalOnMouseOver, evalOnMouseOut,size){this.addElement(new Link(this.layer,id, preImageOff, evalOnClick, label, alt, preImageOn, preImageSel, target, evalOnMouseOver, evalOnMouseOut,size))}
function slideToTop(menuToExpandAfter){this.isInExtreme1= true;this.isInExtreme2= false;var toDoAfter= (!menuToExpandAfter?null:(menuToExpandAfter.menuSystem?menuToExpandAfter.menuSystem.appObjectModelPath + ".expandMenu(" + menuToExpandAfter.appObjectModelPath + ")":null));this.layer.slideFromTo(this.pos.y,this.posExtreme1.y,false, this.speed, this.smooth,false,(++this.layer.lastMovementIndex),toDoAfter)
if(this.layer.brother){this.layer.brother.sendToFront();this.layer.brother.slideFromTo(this.pos.y,this.posExtreme1.y,false, this.speed, this.smooth,false,(++this.layer.brother.lastMovementIndex))}}
function slideToBottom(){var pos1= this.pos.y;var pos2= this.posExtreme2.y;this.layer.slideFromTo(this.pos.y,this.posExtreme2.y,false, this.speed, this.smooth,false,(++this.layer.lastMovementIndex))
this.isInExtreme1= false;this.isInExtreme2= true;if(this.layer.brother){this.layer.brother.sendToFront();this.layer.brother.slideFromTo(this.pos.y,this.posExtreme2.y,false, this.speed, this.smooth,false,(++this.layer.brother.lastMovementIndex))}}
function slideToLeft(menuToExpandAfter){this.layer.slideFromTo(this.size.width,-this.size.width,true, this.speed, this.smooth,true, (++this.layer.lastMovementIndex)) }
function slideToRight(){}
function slideEspiral(stage,radians,coef,espY,moveIndex,incX,incY){var mainCoef= 46;var espiralY= (!espY?300:espY);if(stage!=2 && moveIndex != this.layer.lastMovementIndex){this.layer.moving=false;return}
incX= incX?(isNaN(incX)?0:incX):0;incY= incY?(isNaN(incY)?0:incY):0;this.layer.moving=true;if(!stage){if(this.pos.y<espiralY){var inc= (this.pos.y>espiralY-3?1:(this.pos.y>espiralY-8?2:5));this.layer.moveBy(0,inc);window.setTimeout("theApp.menus['" + this.id + "'].slideEspiral(0,null,null," + espY + "," + moveIndex + "," + incX + "," + incY + ")", 10); }else{window.setTimeout("theApp.menus['" + this.id + "'].slideEspiral(1,null,null," + espY + "," + moveIndex + "," + incX + "," + incY + ")", 10); }}else{if(stage==1){this.layer.slideCircle(50,PI,15*PI/2,50,(++this.layer.lastMovementIndex),50,incX,incY,this.appObjectModelPath + ".slideEspiral(2)")}else{this.layer.slideFromTo(this.layer.pos.x,this.layer.pos.x+20,true, 100, 2,false,(++this.layer.lastMovementIndex),"")
this.layer.setColor("#2A2126")}}}
