//Augment Module
var ITW = (function(itw){
  "use strict";
  //aliases
  var components, protot;
  itw.components = itw.components || Object.create(null);
  components = itw.components;

  var randomRange;

  components.SeaBed = function( ){
      this.super.call(this);

      var _init = function(){
        var index = 0;
        this.seabedContainer1 = new EHDI.aka.Container();
        for( index = 0; index < 4; index++ ){
            var seabedObj = new EHDI.aka.Sprite( EHDI.Assets.images[ "seabed1" ] );
            this.seabedContainer1.addChild( seabedObj );

            seabedObj.x = seabedObj.width * index;
        }
        this.seabedContainer1.y = ITW.SceneMgr.getStageHeight() - this.seabedContainer1.height;

        this.seabedContainer2 = new EHDI.aka.Container();
        for( index = 0; index < 4; index++ ){
            var seabedObj = new EHDI.aka.Sprite( EHDI.Assets.images[ "seabed2" ] );
            this.seabedContainer2.addChild( seabedObj );

            seabedObj.x = seabedObj.width * index;
        }
        this.seabedContainer2.y = ITW.SceneMgr.getStageHeight() - this.seabedContainer2.height;

        this.addChild(this.seabedContainer2);
        this.addChild(this.seabedContainer1);

        randomRange = {
          min: this.width * 0.30,
          max: this.width * 0.60
        }

        this.decoContainer = new EHDI.aka.Container();
        this.decos = [];
        var scale;
        for( index = 0; index < 2; index++ ){
          this.decos[index]  = new EHDI.aka.Sprite( EHDI.Assets.images[ "seabed_reefs" + index ] );
          this.decoContainer.addChild( this.decos[index] );
          scale = EHDI.NumberUtil.randomRange(0.9,1.1);
          this.decos[index].scale.set(scale, scale);
          this.decos[index].x =  EHDI.NumberUtil.randomRange(randomRange.min, randomRange.max);
          this.decos[index].y = ITW.SceneMgr.getStageHeight() - ( this.decos[index].height * 1.3 )
        }
        this.addChildAt(this.decoContainer, 1);

      }.bind(this);
      _init();
  }

  protot = components.SeaBed.prototype = Object.create(EHDI.aka.Container.prototype);
  protot.constructor = components.SeaBed;
  protot.super = EHDI.aka.Container;

  protot.loop = function( dt ){
    this.x -= dt * ITW.GameMgr.getSpeed();
    if( this.x <= this.width * -0.75 ){
      this.x += this.width * 0.75;
      this.randomDecos();
    }
  }

  protot.randomDecos = function(){
    var scale;
    for(var index = 0; index < this.decos.length; index++ ){
      scale = EHDI.NumberUtil.randomRange(0.9,1.1);
      this.decos[index].scale.set(scale, scale);
      this.decos[index].x =  EHDI.NumberUtil.randomRange(randomRange.min, randomRange.max);
    }
  }

  protot.destroy = function(){
    while(this.decos.length > 0){
      var dc = this.decos.pop();
      dc.destroy({children: true});
    }
    this.super.prototype.destroy.call(this, {children: true});
  }

  return itw;
}(ITW || Object.create(null)))