function num_round(n)
{
	_s1=""+n;
	if (_s1.indexOf(".")!=-1) 
		_s1=_s1.substring(0,_s1.indexOf(".")+3);
	return _s1;
}

function OrderRowB(id, arrProperties) {

  this.initParameters(id);
  
  for (var i in arrProperties) {
    this.parameters[i] = arrProperties[i];
  }

}

// далее прототип

  OrderRowB.prototype.materials = [
    'paper',
    'canvas'
  ];
  
  OrderRowB.prototype.initParameters = function(id) {
    this.parameters = new Array();
    this.parameters['id']         = id;
    this.parameters['vSize']      = 0;
    this.parameters['gSize']      = 0;
    this.parameters['hwCoef']     = 0;
    this.parameters['material']   = 0;
    this.parameters['quantity']   = 1;
    this.parameters['imageType']  = 0; //0 - обычное, 1 - панорама, 2 - Третьяковка, 3 - Русский музей
    this.parameters['isAuthors']  = false;
  }
  
  OrderRowB.prototype.getPrice = function() {
    
    var cost = this.parameters['vSize'] * this.parameters['gSize'] / 10000;
    if (this.parameters['material'] == 0) {
      if (this.parameters['isAuthors'])
        cost *= 60;
      else
        cost *= 110;
    } else {
      if (this.parameters['isAuthors'])
        cost *= 130;
      else
        cost *= 200;
      
    }
    
    cost *= parseInt(this.parameters['quantity']);
    
    if (this.parameters['imageType'] == 1) {
      cost *= 1.15;
    } else if (this.parameters['imageType'] == 2) {
      cost += 3500*r_to_ue; // r_to_ue - курс валюты, глобальная переменная
    } else if (this.parameters['imageType'] == 3) {
      cost += 2000*r_to_ue; // r_to_ue - курс валюты, глобальная переменная
    }

    if (this.parameters['isAuthors']) {
      cost += 600*r_to_ue; // r_to_ue - курс валюты, глобальная переменная
    }

    return cost;
  }
  
  OrderRowB.prototype.renderPrice = function() {
    var price = this.getPrice();
    $('price_'+this.parameters['id']).innerHTML = "" + num_round(price) + " $";
    $('sum_'+this.parameters['id']).value = num_round(price);
  }

  OrderRowB.prototype.getWeight = function() {
    var k = 0.18;
    if (this.parameters['material'] == 1) k = 0.5;
    return k*this.parameters['vSize']*this.parameters['gSize']*this.parameters['quantity']/10000;
  }
  
  OrderRowB.prototype.render = function(div_thisrow) {
    var el;
    div_thisrow.innerHTML = '';
    div_thisrow.insert('<label>Material: </label>');
    el = new Element('select',{id: 'material_'+this.parameters['id'], name: 'use_'+this.parameters['id']});
    options_init(el,this.materials);
    el.options[this.parameters['material']].selected = true;
    el.onchange = function() {update_row(this.id, this.options[this.selectedIndex].value)};
    div_thisrow.insert(el);
    div_thisrow.insert('<br />');
    div_thisrow.insert('<label>Size (cm):</label><br />');
    div_thisrow.insert('<label>ver.</label>');
    el = new Element('input',{id: 'vSize_'+this.parameters['id'], name: 'ver_'+this.parameters['id'], type: 'text', value: ''+this.parameters['vSize']});
    el.onblur = function() {
      if (isNaN(parseFloat(this.value)) || parseFloat(this.value) == 0)
        this.value = 10;
      update_row(this.id, parseFloat(this.value));
    };
    div_thisrow.insert(el);
    div_thisrow.insert('<label> x hor.</label>');
    el = new Element('input',{id: 'gSize_'+this.parameters['id'], name: 'gor_'+this.parameters['id'], type: 'text', value: ''+this.parameters['gSize']});
    el.onblur = function() {
      if (isNaN(parseFloat(this.value)) || parseFloat(this.value) == 0)
        this.value = 10;
      update_row(this.id, parseFloat(this.value));
    };
    div_thisrow.insert(el);
    div_thisrow.insert('<br />');
    div_thisrow.insert('<label>Quantity: </label>');
    el = new Element('input',{id: 'quantity_'+this.parameters['id'], name: 'tir_'+this.parameters['id'], type: 'text', value: ''+this.parameters['quantity']});
    el.onblur = function() {
      if (isNaN(parseInt(this.value)) || parseInt(this.value) < 1)
        this.value = 1;
      update_row(this.id, parseInt(this.value));
    };
    div_thisrow.insert(el);
    div_thisrow.insert('<br />');
    el = new Element('input',{name: 'imgtype_'+this.parameters['id'], type: 'hidden', value: this.parameters['imageType']});
    div_thisrow.insert(el);
    if (this.parameters['imageType'] == 2) {
      div_thisrow.insert('<p class="rights">The owner of this image is the State Tretiakov\'s gallery. The charges will cost 3500 roubles.</p>');
    } else if (this.parameters['imageType'] == 3) {
      div_thisrow.insert('<p class="rights">The owner of this image is the State Russian Museum. The charges will cost 2000 roubles.</p>');
    }
    this.renderPrice();
  }
  
  OrderRowB.prototype.modify = function(prop, val) {
    if (prop == 'vSize' || prop == 'gSize') {
      var cur_vSize, cur_gSize;
      if (prop == 'vSize') {
        cur_vSize = val;
        if (this.parameters['hwCoef'] > 0)
          cur_gSize = cur_vSize / this.parameters['hwCoef'];
        else  
          cur_gSize = this.parameters['gSize'];
      } else if (prop == 'gSize') {
        cur_gSize = val;
        if (this.parameters['hwCoef'] > 0)
          cur_vSize = cur_gSize * this.parameters['hwCoef'];
        else  
          cur_vSize = this.parameters['vSize'];
      }  
      if (this.parameters['material'] == 0 && (cur_vSize > 125 || cur_gSize > 125)) {
        window.alert('While printing on paper the greater side may not exceed 125 cm! Try printing on canvas.');
        $('vSize_'+this.parameters['id']).value = 0;
        $('gSize_'+this.parameters['id']).value = 0;
        this.parameters['vSize'] = 0;
        this.parameters['gSize'] = 0;
      }
      else if (this.parameters['material'] == 1 && (cur_vSize > 174 || cur_gSize > 174)) {
        window.alert('While printing on canvas the greater side may not exceed 174 cm!');
        $('vSize_'+this.parameters['id']).value = 0;
        $('gSize_'+this.parameters['id']).value = 0;
        this.parameters['vSize'] = 0;
        this.parameters['gSize'] = 0;
      } else if ($('wayget').value.indexOf('Air')>=0 && (cur_vSize > 80 && cur_gSize > 80)) {
        window.alert('The less side may not exceed 80 cm while the delivery method is air mail!');
        $('vSize_'+this.parameters['id']).value = 0;
        $('gSize_'+this.parameters['id']).value = 0;
        this.parameters['vSize'] = 0;
        this.parameters['gSize'] = 0;
      } else {
        this.parameters[prop] = val;
        if (this.parameters['hwCoef'] > 0) {
        	if (prop == 'vSize') {
            this.parameters['gSize'] = parseFloat(num_round(cur_gSize));
            $('gSize_'+this.parameters['id']).value = num_round(this.parameters['gSize']);
          } else if (prop == 'gSize') {
            this.parameters['vSize'] = parseFloat(num_round(cur_vSize));
            $('vSize_'+this.parameters['id']).value = num_round(this.parameters['vSize']);
          }  
        }
      }
      this.renderPrice();
    } else {
      this.parameters[prop] = val;
      this.renderPrice();
    }
  }
