Weird code problem

in testing this works fine, its an event function to move images about when they are clicked on, but online and mostly mac users find that the images sometimes randomly do the wrong thing, can anyone guess why? its so hard to test for, im just hoping its something minor which i have overlooked. i still dont understand why it would act differently online compared to testing

public function thumbClicked (evt:MouseEvent) {            
            var id = parseInt (evt.target.imageID);
            var thumbID:String = "thumb"+id;
            var imagestotheRight:int = numItems - id;            
            
            var orgRate:Number = thumbHolder.getChildByName(thumbID).height / Root.stage.stageHeight;                        
            var orgHeight:Number = thumbHolder.getChildByName(thumbID).height / orgRate;            
            var orgWidth:Number = thumbHolder.getChildByName(thumbID).width / orgRate;            
        
            var thumbRate:Number = thumbHolder.getChildByName(thumbID).height / beltHeight;            
            var thumbHeight:Number = thumbHolder.getChildByName(thumbID).height / thumbRate;            
            var thumbWidth:Number = thumbHolder.getChildByName(thumbID).width / thumbRate;            
            var thumbY:Number = thumbHolder.getChildByName(thumbID).y -Root.thumbScrollY;
            
            var diff:Number = orgWidth  - thumbWidth;            
            
            if (!hit && loading == false){        
                loading = true;            
                Tweener.addTween (thumbHolder.getChildByName(thumbID), { time:1, y:thumbY, width:orgWidth, height:orgHeight,transition:"easeInOutExpo", onComplete: isLoading()} );
                
                for (var i:int = 0; i < imagestotheRight; i++)
                {                    
                    var j =  id + i + 1;                    
                    var nextImage:String = "thumb"+j;
                    var nextX:Number = thumbHolder.getChildByName(nextImage).x + diff;
                    Tweener.addTween (thumbHolder.getChildByName(nextImage), { time:1, x:nextX, transition:"easeInOutExpo"} );                    
                }
                currentThumb = thumbHolder.getChildByName(thumbID);
                hit = true;                
            }
            
            else if (hit == true && currentThumb != thumbHolder.getChildByName(thumbID) && loading == false){
                loading = true;
                var currentOrgRate:Number = currentThumb.height / Root.stage.stageHeight;                        
                var currentOrgHeight:Number = currentThumb.height / currentOrgRate;            
                var currentOrgWidth:Number = currentThumb.width / currentOrgRate;            
                
                var currentThumbRate:Number = currentThumb.height / beltHeight;            
                var currentThumbHeight:Number = currentThumb.height / currentThumbRate;            
                var currentThumbWidth:Number = currentThumb.width / currentThumbRate;        
                
                var _diff:Number = currentOrgWidth  - currentThumbWidth;                            

                var _id = parseInt (currentThumb.imageID);
                var _imagestotheRight:int = numItems - _id;            
                
                for (var m:int = 0; m < _imagestotheRight; m++)            
                {                    
                    
                    var n =  _id + m + 1;
                    var nextNextImageOld:String = "thumb"+n;
                    var nextNextX:Number = thumbHolder.getChildByName(nextNextImageOld).x - _diff;
                    Tweener.addTween (thumbHolder.getChildByName(nextNextImageOld), { time:1, x:nextNextX, transition:"easeInOutExpo"} );                    
                }    
                    Tweener.addTween (currentThumb, { time:1, y: 0, width: currentThumbWidth, height:currentThumbHeight, transition:"easeInOutExpo", onComplete:waitAndMove() } );    
                
                function waitAndMove(){
                
                    var myTimer:Timer = new Timer(1010, 1);
                    myTimer.addEventListener("timer", timerHandler);
                    myTimer.start();

                    function timerHandler(event:TimerEvent):void {
                        
                        Tweener.addTween (thumbHolder.getChildByName(thumbID), { time:1, y: thumbHolder.getChildByName(thumbID).y -Root.thumbScrollY, width:orgWidth, height:orgHeight,transition:"easeInOutExpo", onComplete: isLoadingDouble()} );                
                    
                        for (var q:int = 0; q < imagestotheRight; q++)
                        {                    
                            var p =  id + q + 1;
                            var _nextImage:String = "thumb"+p;
                            var _nextX:Number = thumbHolder.getChildByName(_nextImage).x + diff;
                            Tweener.addTween (thumbHolder.getChildByName(_nextImage), { time:1, x:_nextX, transition:"easeInOutExpo"} );                    
                        }                        
                        currentThumb = thumbHolder.getChildByName(thumbID);        
                    }            
                }                
            }
            else if (hit == true && currentThumb == thumbHolder.getChildByName(thumbID) && loading == false){                
                loading = true;
                
                Tweener.addTween (thumbHolder.getChildByName(thumbID), { time:1, y: 0, width: thumbWidth, height:thumbHeight, transition:"easeInOutExpo", onComplete: isLoading()} );
                
                for (var k:int = 0; k < imagestotheRight; k++)            
                {
                    var l =  id + k + 1;
                    var nextImageOld:String = "thumb"+l;
                    var nextImageX:Number = thumbHolder.getChildByName(nextImageOld).x - diff;
                    Tweener.addTween (thumbHolder.getChildByName(nextImageOld), { time:1, x:nextImageX, transition:"easeInOutExpo"} );                    
                }                
                hit = false;
                currentThumb = null;                
            }
            else {
                // Do nothing
            }
            
        }