// JavaScript Document

var Box = {

  typesData: {
  
    "A4": {
      minHeight: 10,
      maxHeight: 40,
      pageWidth: 210,
      pageHeight: 297    
    }, 
    
    "A5": {
      minHeight: 10,
      maxHeight: 25,
      pageWidth: 148,
      pageHeight: 210 
    }
  },

  type: "A4",
  height: 10,
  
  getData: function(){
    return this.typesData[ this.type ];
  },
  
  setType: function( type ){
    this.type = type;
    
    this.setHeight( this.height );
    
    BoxHeight.setOption( { 
      min: this.getData().minHeight,
      max: this.getData().maxHeight,
      value: this.height
    });
      
  },
  
  setHeight: function( height ){
    this.height = Math.max( Math.min( Math.round(height), this.getData().maxHeight), this.getData().minHeight );
    Dimension.setDimension( this.getDimension() );
    
    this.save();
  },
  
  getDimension: function(){
    var dim = {};
    
    dim.height = this.height;
    dim.width = this.getData().pageWidth - 4* this.height;
    dim.depth = this.getData().pageHeight - 4* this.height;
    
    return dim;
  },
  
  save: function(){
    $('box_type_value').value = this.type;
    $('box_height_value').value = this.height;
  },
  
  load: function(){
    this.height = parseInt( $('box_height_value').value );
    BoxType.setType( $('box_type_value').value )
  }
  
};

