// Cross-browser implementation of element.addEventListener()
function addListener(element, type, bubbling)
{
  bubbling = bubbling || false;
  if(window.addEventListener) { // Standard	
    element.addEventListener(type, function() {count_column(this.table_name, this.column_name, this.header_rows);}, bubbling);
    return true;
  } else if(window.attachEvent) { // IE
    element.attachEvent('on' + type, function() {count_column(element.table_name, element.column_name, element.header_rows);});
    return true;
  } else return false;
}

// Last updated 2006-02-21
function addRowToTable(table_name,column_count,header_rows)
{
  var founders_col_array = new Array("founder_name","share_procent","share_money_sum","share_money_dol");
  var founders_col_fun_array = new Array(0,1,1,1);
  var founders_size_array = new Array(40,11,16,12);

  var production_col_array = new Array("product_name","volume_old","volume_new","load_old","load_new","export_old","export_new","export_country");
  var production_col_fun_array = new Array(0,1,1,1,1,1,1,0);	
  var production_size_array = new Array(40,11,11,11,11,11,11,15);	

  var financial_condition_col_array = new Array("financial_year","assets","liabilities","business_income","clear_profits");
  var financial_condition_col_fun_array = new Array(0,1,1,1,1);
  var financial_condition_size_array = new Array(4,15,15,23,22);	

  var bank_credit_col_array = new Array("creditor","credit_amount","interest_rate","start_year","end_year");
  var bank_credit_col_fun_array = new Array(0,1,0,0,0);
  var bank_credit_size_array = new Array(30,20,9,8,8);

  var project_goals_col_array = new Array("first_years","sell_amount","export_amount","prime_cost","profitability");
  var project_goals_size_array = new Array(10,20,20,20,20);
  
  var financial_acivities_col_array = new Array("fin_year","capital_stock","fixed_assets","dividend_payment","profitability","gross_profit","clear_profit","notes_payable","bill_payable");
  var financial_acivities_size_array = new Array(4,15,15,15,15,15,15,15,15);

  var tbl = document.getElementById(table_name);
  var lastRow = tbl.rows.length;
  // if there's no header row in the table, then iteration = lastRow + 1
  var iteration = lastRow-header_rows;
  var row = tbl.insertRow(lastRow);
  
  // left cell
  var cellLeft = row.insertCell(0);
  var textNode = document.createTextNode(iteration);
  cellLeft.appendChild(textNode);
  
  for (var i=1; i<=column_count; i++) {
    var table_Cell = row.insertCell(i);
    var el = document.createElement('input');
    el.type = 'text';
    
    if (table_name == 'founders_table') {
      el.name = founders_col_array[i-1] + '_' + iteration;
      el.id = founders_col_array[i-1] + '_' + iteration;
      el.size = founders_size_array[i-1];
      table_Cell.appendChild(el);
      if (founders_col_fun_array[i-1] == 1) {
        el.table_name = table_name;
        el.column_name = founders_col_array[i-1];
        el.header_rows = header_rows;
        addListener(el,"keyup", false);
      }			
    }
    if (table_name == 'production_volume') {
      el.name = production_col_array[i-1] + '_' + iteration;
      el.id = production_col_array[i-1] + '_' + iteration;
      el.size = production_size_array[i-1];
      table_Cell.appendChild(el);
      if (production_col_fun_array[i-1] == 1) {
        el.table_name = table_name;
        el.column_name = production_col_array[i-1];
        el.header_rows = header_rows;
        addListener(el,"keyup", false);
      }
    }
    if (table_name == 'financial_condition_table') {
      el.name = financial_condition_col_array[i-1] + '_' + iteration;
      el.id = financial_condition_col_array[i-1] + '_' + iteration;
      el.size = financial_condition_size_array[i-1];
      table_Cell.appendChild(el);
      if (financial_condition_col_fun_array[i-1] == 1) {
        el.table_name = table_name;
        el.column_name = financial_condition_col_array[i-1];
        el.header_rows = header_rows;
        addListener(el,"keyup", false);
      }
    }
    if (table_name == 'bank_credit_table') {
      el.name = bank_credit_col_array[i-1] + '_' + iteration;
      el.id = bank_credit_col_array[i-1] + '_' + iteration;
      el.size = bank_credit_size_array[i-1];
      table_Cell.appendChild(el);
      if (bank_credit_col_fun_array[i-1] == 1) {
        el.table_name = table_name;
        el.column_name = bank_credit_col_array[i-1];
        el.header_rows = header_rows;
        addListener(el,"keyup", false);
      }
    }
    if (table_name == 'project_goals_table') {
      el.name = project_goals_col_array[i-1] + '_' + iteration;
      el.id = project_goals_col_array[i-1] + '_' + iteration;
      el.size = project_goals_size_array[i-1];
      table_Cell.appendChild(el);
    }
    if (table_name == 'financial_acivities_table') {
      el.name = financial_acivities_col_array[i-1] + '_' + iteration;
      el.id = financial_acivities_col_array[i-1] + '_' + iteration;
      el.size = financial_acivities_size_array[i-1];
      table_Cell.appendChild(el);
    }    
  }
}

function removeRowFromTable(table_name)
{
  var tbl = document.getElementById(table_name);
  var lastRow = tbl.rows.length;
  if (lastRow > 2) tbl.deleteRow(lastRow - 1);
}

function count_column(table_name,column_name,header_rows) {
  var tbl = document.getElementById(table_name);
  var lastRow = tbl.rows.length;
  var e = document.getElementById(column_name);
  var summa = 0;
  var start_row = 1;
  for (var i=start_row; i<lastRow-header_rows; i++) {
    if (document.getElementById(column_name+'_'+(i)).value != "" ) {
      summa = summa + '+' + document.getElementById(column_name+'_'+(i)).value;
    } else {
      summa = summa + '+' + 0;
    }
  }	
  e.value = eval(summa);
}

function count_rows(table_name,header_rows,element_name) {
  var tbl = document.getElementById(table_name);
  var rows_count = tbl.rows.length;      
  var hidden_element = document.getElementById(element_name);
  hidden_element.value = (rows_count - header_rows - 1);
}

function fill_rows(column_name,column_value) {
  var el = document.getElementById(column_name);
  el.value = column_value;
}

function fill_element(element_name,element_value) {
  var el = document.getElementById(element_name);
  el.value = element_value;
}

function count_invest_directions() {
  var list_sum = new Array("buy_equipment_sum","building_work_sum","buy_materials_sum","form_floating_assets_sum");
  var list_dol = new Array("buy_equipment_dol","building_work_dol","buy_materials_dol","form_floating_assets_dol");
  var count_sum = 0;
  var count_dol = 0;
  var el_sum = document.getElementById('investment_direct_amount_sum');
  var el_dol = document.getElementById('investment_direct_amount_dol');
  
    for (var i=0; i < list_sum.length; i++) {
      if (document.getElementById(list_sum[i]).value != "") {
        count_sum = count_sum + '+' + document.getElementById(list_sum[i]).value;
      } else {
        count_sum = count_sum + '+' + 0;
      }
      if (document.getElementById(list_dol[i]).value != "") {
        count_dol = count_dol + '+' + document.getElementById(list_dol[i]).value;
      } else {
        count_dol = count_dol + '+' + 0;
      }    
    }	
  el_sum.value = eval(count_sum);
  el_dol.value = eval(count_dol);
  }

function count_invest_directions_equipment() {
  var list_sum = new Array("local_made_equipment_sum","foreign_made_equipment_sum");
  var list_dol = new Array("local_made_equipment_dol","foreign_made_equipment_dol");
  var count_sum = 0;
  var count_dol = 0;
  var el_sum = document.getElementById('buy_equipment_sum');
  var el_dol = document.getElementById('buy_equipment_dol');
  
    for (var i=0; i < list_sum.length; i++) {
      if (document.getElementById(list_sum[i]).value != "") {
        count_sum = count_sum + '+' + document.getElementById(list_sum[i]).value;
      } else {
        count_sum = count_sum + '+' + 0;
      }
      if (document.getElementById(list_dol[i]).value != "") {
        count_dol = count_dol + '+' + document.getElementById(list_dol[i]).value;
      } else {
        count_dol = count_dol + '+' + 0;
      }    
    }	
  el_sum.value = eval(count_sum);
  el_dol.value = eval(count_dol);
  }