/** * @author Mateusz */ var ImageBox = { initialize: function() { this.showIndicator = ImageBox.showIndicator.bind(this); this.hideIndicator = ImageBox.hideIndicator.bind(this); this.reCenterIndicator = ImageBox.reCenterIndicator.bind(this); this.centerIndicator = ImageBox.centerIndicator.bind(this); this.checkOutOfDrawingArea = ImageBox.checkOutOfDrawingArea.bind(this); this.center = ImageBox.center.bind(this); this.imageContainer = Positioning.addBehaviour($('imageContainer')); Element.hide(this.imageContainer); this.indicator = Positioning.addBehaviour($('loadingIndicatorContainer')); this.indicatorImage = Positioning.addBehaviour($('loadingIndicator')); Positioning.addBehaviour($('mainContainer')); }, showIndicator: function(container) { if(container == null) container = this.imageContainer; this.centerIndicator(container); this.indicator.style.display = 'inline'; }, hideIndicator: function() { Element.hide(this.indicator); }, centerIndicator: function(container) { var top = container.getTop(); var left = container.getLeft(); var width = container.getWidth(); var height = container.getHeight(); var parentTop = container.getParentTop(); var parentLeft = container.getParentLeft(); this.indicator.style.left = parentLeft + left + width/2 - this.indicatorImage.width/2 + 2 + "px"; this.indicator.style.top = parentTop + top + height/2 - this.indicatorImage.height/2 + 2 + "px"; }, reCenterIndicator: function() { if(this.indicator.style.display == 'inline') { this.centerIndicator(this.imageContainer); } }, center: function() { this.imageContainer.style.left = this.imageContainer.getParentWidth()/2 - this.imageContainer.getWidth()/2 + 'px'; this.imageContainer.style.top = this.imageContainer.getParentHeight()/2 - this.imageContainer.getHeight()/2 + 'px'; }, checkOutOfDrawingArea: function(width,height) { var left = this.imageContainer.getLeft(); var top = this.imageContainer.getTop(); var parentLeft = this.imageContainer.getParentLeft(); var parentTop = this.imageContainer.getParentTop(); var parentWidth = this.imageContainer.getParentWidth(); var parentHeight = this.imageContainer.getParentHeight(); if(left + width > parentWidth) { this.imageContainer.style.left = left - (left + width - parentWidth) - 3+ 'px'; } if(top + height > parentHeight) { this.imageContainer.style.top = top - (top + height - parentHeight) - 3 + 'px'; } } };