req = false;
ajaxID = 0;
pTable_openLang = 'Cz';

function tableObj (newTableID) {
  this.tableID = newTableID;
  this.Rows = new Array(); 
  this.Structure = new Array(); 
};

function rowObj() {
  this.ObjCis = ''; 
  this.KatCis = ''; 
  this.Columns = new Array(); 
  this.Package = ''; 
  this.VAT = ''; 
  this.Price = '';
  this.Is24 = '0';
  this.ActPrice = '';
  this.Basket = new Array(); 
  this.Basket['Cz'] = ''; 
  this.Basket['En'] = ''; 
  this.Basket['Ru'] = ''; 
  this.Comment = new Array(); 
  this.Comment['Cz'] = ''; 
  this.Comment['En'] = ''; 
  this.Comment['Ru'] = ''; 
  this.Alternatives = ''; 
  this.ReplaceObjCis = ''; 
  this.isComment = false;
}

function randomizeRequest(request) {
	ajaxID++;
	return request + (request.search(/\?/) == -1 ? '?rnd=' : '&rnd=') + Math.round(Math.random()*100000) + '&aID=' + ajaxID;
}

function parEdit_trim(str) {
  return str && str.replace ? str.replace(/^\s*|\s*$/g,"") : '';
} 

function parEdit_processReqChange() {
	if (req.readyState == 4) {
		if (req.status == 200) {
			if (req.responseText.search('[[:aPx:]]') > 0) {
				rParts = req.responseText.split('[[:aPx:]]');
				if (rParts[0] == 'availablePars') {
					parEdit_getAvailable_Go(rParts);
				}
			}
		}
	}
}

function parEdit_randomizeRequest(request) {
	ajaxID++;
	return request + (request.search(/\?/) == -1 ? '?rnd=' : '&rnd=') + Math.round(Math.random()*100000) + '&aID=' + ajaxID;
}

function parEdit_loadAjaxData(url) {
	url = randomizeRequest(url);
	if (req) {
	  req.abort();
	}
	req = false;
	if(window.XMLHttpRequest) {
		try {
			req = new XMLHttpRequest();
		} catch(e) {
			req = false;
		}
	// branch for IE/Windows ActiveX version
	} else if(window.ActiveXObject) {
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				req = false;
			}
		}
	}
	if(req) {
		req.onreadystatechange = parEdit_processReqChange;
		req.open("GET", url, false);
		req.send("");
	}
}

function parEdit_getAvailable(lang) {
  parEdit_loadAjaxData('parEdit/availablePars.php?lang' + lang);
}

function parEdit_getAvailable_Go(pars) {
  eval(pars[1]);
}

function parEdit_createImgSrcAction(aAction, aSrc, aDesc, nr, verify) {
  var a = document.createElement('a');
  theAction = aAction.indexOf('(') > 0 ? aAction : aAction + '(' + nr + ')';
  if (verify == 'verify') {
    a.href = 'javascript:if(confirm("' + aDesc + '?")) {' + theAction + ';}';
  } else {
    a.href = 'javascript:' + theAction;
  }
  var tmp = document.createElement('img');
  tmp.style.cursor = 'pointer';
  tmp.src = 'parEdit/' + aSrc + '.png';
  tmp.alt = aDesc;
  tmp.title = aDesc;
  tmp.vspace = 1;
  tmp.hspace = 1;
  tmp.border = 0;
  if (aAction != aSrc) {
    tmp.id = aAction + '_' + nr;
  }
  a.appendChild(tmp);
  return a;
}

function parEdit_createImgAction(aAction, aDesc, nr, verify) {
  return  parEdit_createImgSrcAction(aAction, aAction, aDesc, nr, verify);
}

function parEdit_createBasketAction(tr) {
  return parEdit_createImgSrcAction('parEditEditBasket', parEdit_trim(objCisTable.Rows[tr].Basket[pTable_openLang]) == '' ? 'parEdit_basketFAIL' : 'parEdit_basketOK', 'popis pro košík: ' + parEdit_trim(objCisTable.Rows[tr].Basket[pTable_openLang]), tr, false) 
}

function parEdit_createCommentAction(tr) {
  return parEdit_createImgSrcAction('parEditEditComment', parEdit_trim(objCisTable.Rows[tr].Comment[pTable_openLang]) == '' ? 'parEdit_commentFAIL' : 'parEdit_commentOK', 'poznámka k položce: ' + parEdit_trim(objCisTable.Rows[tr].Comment[pTable_openLang]), tr, false) 
}

function parEdit_createReplaceAction(tr) {
  return parEdit_createImgSrcAction('parEditEditReplaceObjCis', parEdit_trim(objCisTable.Rows[tr].ReplaceObjCis) == '' ? 'parEdit_replaceFAIL' : 'parEdit_replaceOK', 'nahrazeno: ' + parEdit_trim(objCisTable.Rows[tr].ReplaceObjCis), tr, false) 
}

function parEdit_createAlternativesAction(tr) {
  return parEdit_createImgSrcAction('parEditEditAlternatives', parEdit_trim(objCisTable.Rows[tr].Alternatives) == '' ? 'parEdit_altFAIL' : 'parEdit_altOK', 'alternativy: ' + parEdit_trim(objCisTable.Rows[tr].Alternatives), tr, false) 
}

function parEdit_createActPriceAction(tr) {
  return parEdit_createImgSrcAction('parEditEditActPrice', parEdit_trim(objCisTable.Rows[tr].ActPrice) == '' ? 'parEdit_actpriceFAIL' : 'parEdit_actpriceOK', 'akční cena: ' + parEdit_trim(objCisTable.Rows[tr].ActPrice), tr, false) 
}

function parEdit_create24Action(tr) {
  return parEdit_createImgSrcAction('parEditEdit24', parEdit_trim(objCisTable.Rows[tr].Is24) == '0' ? 'parEdit_24FAIL' : 'parEdit_24OK', '24:' + parEdit_trim(objCisTable.Rows[tr].Is24 == '2') ? 'ANO' : 'NE', tr, false) 
}

function parEdit_createInput(aId,aClass,aHidden,aValue,addOnEvents) {
  var tmp = document.createElement('input');
  tmp.id = aId;
  tmp.name = aId;
  tmp.className = aClass;
  if (aHidden == true) {
    tmp.type = "hidden";
  }
  tmp.value = aValue;
  if (addOnEvents) {
    tmp.onkeydown = function(e) {cKeysGo(this,e,cellCount)};
    tmp.onkeyup = function(e) {cKeysDupl(this)};
  }
  return tmp;
}

function parEdit_createTextarea(addOnEvents) {
  var tmp = document.createElement('textarea');
  if (addOnEvents) {
    tmp.onkeydown = function(e) {cKeysGo(this,e,cellCount)};
    tmp.onkeyup = function(e) {cKeysDupl(this)};
  }
  return tmp;
}

function parEdit_createCell(aId) {
  var tmp = document.createElement('td');
  tmp.id = aId;
  return tmp;
}

function parEdit_createCellH(aId) {
  var tmp = parEdit_createCell(aId);
  tmp.className = 'pTableShimTd';
  return tmp;
}


function parEdit_paintHeader() {
  var tbl = document.getElementById('objTableHTML');
  var row = document.createElement('tr');
  row.className = 'pTableHeader';
  var cell = parEdit_createCellH('pTable_0_tdObjCis');
  cell.appendChild(document.createTextNode('Obj. číslo'));
  row.appendChild(cell);
  var cell =parEdit_createCellH('pTable_0_tdKatCis'); 
  cell.appendChild(document.createTextNode('Kat. číslo'));
  cell.appendChild(document.createElement('br'));
  cell.appendChild(parEdit_createImgAction('parEdit_colInsertAfter','vložit sloupec za',-1,''));
  row.appendChild(cell);

  for (var td = 0; td < objCisTable.Structure.length; td ++) {
    var cell = document.createElement('td');
    cell.id =  'pTable_h_td' + td;

    for (var i = 0; i < pTable_langs.length; i++) {
      var inText = parEdit_createInput('pTable_h_' + td + '_' + pTable_langs[i],'pTableShimSelect',(pTable_openLang != pTable_langs[i]),'',false);
      inText.style.width = "100%";
      //inText.disabled = true;
      inText.onclick = function () {parEditSelectColumnName(this);};
      var inValue = parEdit_createInput('pTable_h1_' + td + '_' + pTable_langs[i],'',true,'',false);
      var inValueI = parEdit_createInput('pTable_hi_' + td + '_' + pTable_langs[i],'',true,'',false);
      
      test = objCisTable.Structure[td][pTable_langs[i]];
      pE_avail = document.getElementById('mainColumnList' + pTable_langs[i]).options;
      for (pN = 0; pN < pE_avail.length; pN++) {
        if (test == pE_avail[pN].value) {
          inText.value = pE_avail[pN].text;
          inText.title = pE_avail[pN].text + ' - ' + pE_avail[pN].value;
          inValue.value = test;
          inValueI.value = pN;
        }
      }
      cell.appendChild(inText);
      cell.appendChild(inValue);
      cell.appendChild(inValueI);
    }
     
    cell.appendChild(document.createElement('br'));
    if (td > 0) {
      cell.appendChild(parEdit_createImgAction('parEdit_colToLeft','posunout doleva',td,''));
    }
    if (td < objCisTable.Structure.length - 1) {
      cell.appendChild(parEdit_createImgAction('parEdit_colToRight','posunout doprava',td,''));
    }
    cell.appendChild(parEdit_createImgAction('parEdit_colInsertBefore','vložit sloupec před',td,''));
    cell.appendChild(parEdit_createImgAction('parEdit_colInsertAfter','vložit sloupec za',td,''));
    cell.appendChild(parEdit_createImgAction('parEdit_colDelete','smazat sloupec',td,'verify'));
    row.appendChild(cell);
  } 

  var cell =parEdit_createCellH('pTable_0_tdPackage'); 
  cell.appendChild(document.createTextNode('Balení'));
  row.appendChild(cell);
  var cell =parEdit_createCellH('pTable_0_tdVAT'); 
  cell.appendChild(document.createTextNode('DPH'));
  row.appendChild(cell);
  var cell =  parEdit_createCellH('pTable_0_tdPrice'); 
  cell.appendChild(document.createTextNode('Cena bez DPH'));
  row.appendChild(cell);

  var cell = document.createElement('td');
  cell.setAttribute('nowrap', true);
  for (var i = 0; i < pTable_langs.length; i++) {
    l = pTable_langs[i];
    cell.appendChild(parEdit_createImgSrcAction('parEditSwitchLangTo("' + l + '")', 
                                                'langBlock' + (pTable_openLang == l ? 'Open' : 'Close') + l, 
                                                'Obsah tabulky objednávkových čísel pro ' + l, 0, false));
  }
  cell.appendChild(document.createElement('br'));
  cell.appendChild(parEdit_createImgAction('parEdit_rowInsertAfter','vložit řádek za',-1,''));

  row.appendChild(cell);
  tbl.appendChild(row);
}

function parEditSelectColumnName(obj) {
  parts = obj.id.split('_');
  td = parts[2];
  var inp = document.getElementById('pTable_h_' + td + '_' + pTable_openLang);
  var ind = document.getElementById('pTable_hi_' + td + '_' + pTable_openLang);
  var tda = document.getElementById('pTable_h_td' + td);
  inp.style.display = 'none';
  var sel = document.getElementById('mainColumnList' + pTable_openLang);
  selNew = sel.cloneNode(true);
  selNew.id = 'mainColumnListActive';
  selNew.selectedIndex = ind.value;
  selNew.onchange = function() {parEditUpdateCaller(td)};
  tda.insertBefore(selNew,inp);
}

function parEditUpdateCaller(td) {
  var sel = document.getElementById('mainColumnListActive');
  var inp = document.getElementById('pTable_h_' + td + '_' + pTable_openLang);
  var val = document.getElementById('pTable_h1_' + td + '_' + pTable_openLang);
  var ind = document.getElementById('pTable_hi_' + td + '_' + pTable_openLang);
  var tda = document.getElementById('pTable_h_td' + td);
  inp.value = sel.options[sel.selectedIndex].text;
  val.value = sel.options[sel.selectedIndex].value;
  ind.value = sel.selectedIndex;
  tda.removeChild(sel);
  inp.style.display = 'inline';
  objCisTable.Structure[td][pTable_openLang] = val.value;
}

function parEdit_Clean() {
  var tbl = document.getElementById('objTableHTML');
  while (f = tbl.firstChild) {
    tbl.removeChild(f);
  }
}

function growTextArea(obj) {
  trace = 0;
  while (obj.scrollHeight > obj.clientHeight) {
    obj.rows += 1;
    trace++;
    if (trace > 100) {
      break;
    }
  }
  trace = 0;
  while (obj.clientHeight > obj.scrollHeight) {
    obj.rows -= 1;
    trace++;
    if (trace > 100) {
      break;
    }
  }
}

function parEdit_paintContents() {
  var tbl = document.getElementById('objTableHTML');
  cellCount = objCisTable.Structure.length; 
  for (var tr = 0; tr < objCisTable.Rows.length; tr++) {
    var row = document.createElement('tr');
    row.className = 'pTableData';
    var cell = parEdit_createCell('pTable_' + tr + 'tdObjCis');

    cell.appendChild(parEdit_createInput('pTable_' + tr + '_ReplaceObjCis','pTableIntext',true,objCisTable.Rows[tr].ReplaceObjCis,false));
    cell.appendChild(parEdit_createInput('pTable_' + tr + '_ActPrice','pTableIntext',true,objCisTable.Rows[tr].ActPrice,false));
    cell.appendChild(parEdit_createInput('pTable_' + tr + '_Is24','pTableIntext',true,objCisTable.Rows[tr].Is24,false));
    for (var i = 0; i < pTable_langs.length; i++) {
      cell.appendChild(parEdit_createInput('pTable_' + tr + '_Basket_' + pTable_langs[i],'pTableIntext',true,objCisTable.Rows[tr].Basket[pTable_langs[i]],false));
    }
    for (var i = 0; i < pTable_langs.length; i++) {
      cell.appendChild(parEdit_createInput('pTable_' + tr + '_Comment_' + pTable_langs[i],'pTableIntext',true,objCisTable.Rows[tr].Comment[pTable_langs[i]],false));
    }

    cell.appendChild(parEdit_createInput('pTable_' + tr + '_IsComment','pTableIntext',true,objCisTable.Rows[tr].isComment ? '1' : '0',false));
    cell.appendChild(parEdit_createInput('pTable_' + tr + '_Alternatives','pTableIntext',true,objCisTable.Rows[tr].Alternatives));


    if (objCisTable.Rows[tr].isComment) {
       cell.setAttribute('colSpan', cellCount + 5);
      for (var i = 0; i < pTable_langs.length; i++) {
        if (pTable_openLang != pTable_langs[i]) {
          var inText = parEdit_createInput('pTable_' + tr + '_0_' + pTable_langs[i],'',true,objCisTable.Rows[tr].Comment[pTable_langs[i]],false);
        } else {
          var inText = parEdit_createTextarea(true);
          inText.appendChild(document.createTextNode(objCisTable.Rows[tr].Comment[pTable_langs[i]]));
          inText.style.height = "auto";
          inText.style.width = "800";
          inText.name = 'pTable_' + tr + '_0_' + pTable_langs[i] ;
          inText.id = 'pTable_' + tr + '_0_' + pTable_langs[i];
        } 
        cell.appendChild(inText);
      }
      row.appendChild(cell);
    } else {
      cell.appendChild(parEdit_createInput('pTable_' + tr + '_ObjCis','pTableIntext',false,objCisTable.Rows[tr].ObjCis,true));    
      row.appendChild(cell);
      
      var cell = parEdit_createCell('pTable_' + tr + '_tdKatCis');
      cell.appendChild(parEdit_createInput('pTable_' + tr + '_KatCis','pTableIntext',false,objCisTable.Rows[tr].KatCis,true));
      row.appendChild(cell);

      for (var td = 0; td < cellCount; td++) {
        if (!objCisTable.Rows[tr].Columns[td]) {
          objCisTable.Rows[tr].Columns[td] = new Array();
          for (var i = 0; i < pTable_langs.length; i++) {
            objCisTable.Rows[tr].Columns[td][pTable_langs[i]] = '';
          }
        }
        var cell = parEdit_createCell('pTable_' + tr + '_td' + td);
        for (var i = 0; i < pTable_langs.length; i++) {
          if (!objCisTable.Rows[tr].Columns[td][pTable_langs[i]]) {
            objCisTable.Rows[tr].Columns[td][pTable_langs[i]] = '';
          }
          cell.appendChild(parEdit_createInput('pTable_' + tr + '_' + td + '_' + pTable_langs[i],'pTableIntext',(pTable_openLang != pTable_langs[i]),objCisTable.Rows[tr].Columns[td][pTable_langs[i]],(pTable_openLang == pTable_langs[i])));
        }
        row.appendChild(cell);
      }
      var cell = parEdit_createCell('pTable_' + tr + '_tdPackage');
      cell.appendChild(parEdit_createInput('pTable_' + tr + '_Package','pTableIntext',false,objCisTable.Rows[tr].Package,true));
      row.appendChild(cell);

      var cell = parEdit_createCell('pTable_' + tr + '_tdVAT');
      cell.appendChild(parEdit_createInput('pTable_' + tr + '_VAT','pTableIntext',false,objCisTable.Rows[tr].VAT,true));
      row.appendChild(cell);

      var cell = parEdit_createCell('pTable_' + tr + '_tdPrice');
      cell.appendChild(parEdit_createInput('pTable_' + tr + '_Price','pTableIntext' + (parEdit_trim(objCisTable.Rows[tr].ActPrice) != '' ? ' pTableAct' : ''),false,objCisTable.Rows[tr].Price,true));
      row.appendChild(cell);

    }
    
    var cell = document.createElement('td');
    if (tr > 0) {cell.appendChild(parEdit_createImgAction('parEdit_rowUp','posunout nahoru',tr,''))};
    if (tr < objCisTable.Rows.length - 1) {cell.appendChild(parEdit_createImgAction('parEdit_rowDown','posunout dolů',tr,''))};
    cell.appendChild(parEdit_createImgAction('parEdit_rowInsertBefore','vložit řádek před',tr,''));
    cell.appendChild(parEdit_createImgAction('parEdit_rowInsertAfter','vložit řádek za',tr,''));
    cell.appendChild(parEdit_createImgAction('parEdit_rowToComment','spojit řádek na komentář',tr,'verify'));
    cell.appendChild(parEdit_createImgAction('parEdit_rowDelete','smazat řádek',tr,'verify'));
    cell.appendChild(document.createElement('br'));
    cell.appendChild(parEdit_createBasketAction(tr));
    cell.appendChild(parEdit_createCommentAction(tr));
    cell.appendChild(parEdit_createReplaceAction(tr));
    cell.appendChild(parEdit_createAlternativesAction(tr));
    cell.appendChild(parEdit_createActPriceAction(tr));
    cell.appendChild(parEdit_create24Action(tr));
    row.appendChild(cell);

    tbl.appendChild(row);
  }
}

function parEdit_paintTable() {
  parEdit_Clean();
  parEdit_paintHeader();
  parEdit_paintContents();
}

function parEdit_tableToData() {
  for (var row = 0; row < objCisTable.Rows.length; row++) {
    if (objCisTable.Rows[row].isComment == true) {
      objCisTable.Rows[row].Comment[pTable_openLang] = document.getElementById('pTable_' + row + '_0_' + pTable_openLang).value;
    } else {
      for (var td = 0; td < objCisTable.Rows[row].Columns.length; td++) {
        for (var i = 0; i < pTable_langs.length; i++) {
          objCisTable.Rows[row].Columns[td][pTable_langs[i]] = document.getElementById('pTable_' + row + '_' + td + '_' + pTable_langs[i]).value;
        }
      }
      objCisTable.Rows[row].ObjCis = document.getElementById('pTable_' + row + '_ObjCis').value;
      objCisTable.Rows[row].KatCis = document.getElementById('pTable_' + row + '_KatCis').value;
      objCisTable.Rows[row].Package = document.getElementById('pTable_' + row + '_Package').value;
      objCisTable.Rows[row].VAT = document.getElementById('pTable_' + row + '_VAT').value;
      objCisTable.Rows[row].Price = document.getElementById('pTable_' + row + '_Price').value;
      objCisTable.Rows[row].ActPrice = document.getElementById('pTable_' + row + '_ActPrice').value;
      for (var i = 0; i < pTable_langs.length; i++) {
        objCisTable.Rows[row].Basket[pTable_langs[i]] = document.getElementById('pTable_' + row + '_Basket_' + pTable_langs[i]).value;
      }
      for (var i = 0; i < pTable_langs.length; i++) {
        objCisTable.Rows[row].Comment[pTable_langs[i]] = document.getElementById('pTable_' + row + '_Comment_' + pTable_langs[i]).value;
      }
      objCisTable.Rows[row].Alternatives = document.getElementById('pTable_' + row + '_Alternatives').value;
    }
  }
}

function parEditSwitchLangTo(lang) {
  parEdit_tableToData();
  pTable_openLang = lang;
  parEdit_paintTable();
}

function parEdit_colToLeft(nr) {
  parEdit_tableToData();
  tmp = objCisTable.Structure[nr];
  objCisTable.Structure[nr] = objCisTable.Structure[nr-1];
  objCisTable.Structure[nr-1] = tmp;

  for (var row = 0; row < objCisTable.Rows.length; row++) {
    if (objCisTable.Rows[row].isComment == false) {
      tmp = objCisTable.Rows[row].Columns[nr];
      objCisTable.Rows[row].Columns[nr] = objCisTable.Rows[row].Columns[nr-1];
      objCisTable.Rows[row].Columns[nr-1] = tmp;
    }
  }
  parEdit_paintTable();
}

function parEdit_colToRight(nr) {
  parEdit_tableToData();
  tmp = objCisTable.Structure[nr];
  objCisTable.Structure[nr] = objCisTable.Structure[nr+1];
  objCisTable.Structure[nr+1] = tmp;

  for (var row = 0; row < objCisTable.Rows.length; row++) {
    if (objCisTable.Rows[row].isComment == false) {
      tmp = objCisTable.Rows[row].Columns[nr];
      objCisTable.Rows[row].Columns[nr] = objCisTable.Rows[row].Columns[nr+1];
      objCisTable.Rows[row].Columns[nr+1] = tmp;
    }
  }
  parEdit_paintTable();
}

function parEdit_colInsertBefore(nr) {
  parEdit_tableToData();

  tmp = new Array();
  for (var td = 0; td < objCisTable.Structure.length; td++) {
    if (td == nr) {
      tmp[tmp.length] = new Array();
      for (var i = 0; i < pTable_langs.length; i++) {
        tmp[tmp.length - 1][pTable_langs[i]] = -1;
      }
    }
    tmp[tmp.length] = objCisTable.Structure[td];
  }
  objCisTable.Structure = tmp;

  for (var row = 0; row < objCisTable.Rows.length; row++) {
    if (objCisTable.Rows[row].isComment == false) {
      tmp = new Array();
      for (var td = 0; td < objCisTable.Rows[row].Columns.length; td++) {
        if (td == nr) {
          tmp[tmp.length] = new Array();
          for (var i = 0; i < pTable_langs.length; i++) {
            tmp[tmp.length - 1][pTable_langs[i]] = '';
          }
        }
        tmp[tmp.length] = objCisTable.Rows[row].Columns[td];
      }
      objCisTable.Rows[row].Columns = tmp;
    }
  }
  parEdit_paintTable();
}

function parEdit_colInsertAfter(nr) {
  parEdit_tableToData();

  tmp = new Array();
  if (nr == -1) {
    tmp[tmp.length] = new Array();
    for (var i = 0; i < pTable_langs.length; i++) {
      tmp[tmp.length - 1][pTable_langs[i]] = -1;
    }
  }
  for (var td = 0; td < objCisTable.Structure.length; td++) {
    tmp[tmp.length] = objCisTable.Structure[td];
    if (td == nr) {
      tmp[tmp.length] = new Array();
      for (var i = 0; i < pTable_langs.length; i++) {
        tmp[tmp.length - 1][pTable_langs[i]] = -1;
      }
    }
  }
  objCisTable.Structure = tmp;

  for (var row = 0; row < objCisTable.Rows.length; row++) {
    if (objCisTable.Rows[row].isComment == false) {
      tmp = new Array();
      if (nr == -1) {
        tmp[tmp.length] = new Array();
        for (var i = 0; i < pTable_langs.length; i++) {
          tmp[tmp.length - 1][pTable_langs[i]] = '';
        }
      }
      for (var td = 0; td < objCisTable.Rows[row].Columns.length; td++) {
        tmp[tmp.length] = objCisTable.Rows[row].Columns[td];
        if (td == nr) {
          tmp[tmp.length] = new Array();
          for (var i = 0; i < pTable_langs.length; i++) {
            tmp[tmp.length - 1][pTable_langs[i]] = '';
          }
        }
      }
      objCisTable.Rows[row].Columns = tmp;
    }
  }
  parEdit_paintTable();
}

function parEdit_colDelete(nr) {
  parEdit_tableToData();

  tmp = new Array();
  for (var td = 0; td < objCisTable.Structure.length; td++) {
    if (td != nr) {
      tmp[tmp.length] = objCisTable.Structure[td];
    }
  }
  objCisTable.Structure = tmp;

  for (var row = 0; row < objCisTable.Rows.length; row++) {
    if (objCisTable.Rows[row].isComment == false) {
      tmp = new Array();
      for (var td = 0; td < objCisTable.Rows[row].Columns.length; td++) {
        if (td != nr) {
          tmp[tmp.length] = objCisTable.Rows[row].Columns[td];
        }
      }
      objCisTable.Rows[row].Columns = tmp;
    }
  }
  parEdit_paintTable();
}

function parEdit_rowUp(nr) {
  parEdit_tableToData();
  tmp = objCisTable.Rows[nr];
  objCisTable.Rows[nr] = objCisTable.Rows[nr - 1];
  objCisTable.Rows[nr - 1] = tmp;
  parEdit_paintTable();
}

function parEdit_rowDown(nr) {
  parEdit_tableToData();
  tmp = objCisTable.Rows[nr];
  objCisTable.Rows[nr] = objCisTable.Rows[nr + 1];
  objCisTable.Rows[nr + 1] = tmp;
  parEdit_paintTable();
}

function parEdit_rowInsertBefore(nr) {
  parEdit_tableToData();
  tmp = new Array();
  for (var tr = 0; tr < objCisTable.Rows.length; tr++) {
    if (tr == nr) {
      newRow = new rowObj();
      for (var td = 0; td < objCisTable.Rows[0].Columns.length; td++) {
        var tmpx = new Array();
        for (var i = 0; i < pTable_langs.length; i++) {
          tmpx[pTable_langs[i]] = '';
        }
        newRow.Columns[newRow.Columns.length] = tmpx;
      } 
      tmp[tmp.length] = newRow;
    }
    tmp[tmp.length] = objCisTable.Rows[tr];
  } 
  objCisTable.Rows = tmp;
  parEdit_paintTable();
}

function parEdit_rowInsertAfter(nr) {
  parEdit_tableToData();
  tmp = new Array();
  if (nr == -1) {
    newRow = new rowObj();
    if (objCisTable.Rows[0]) {
      for (var td = 0; td < objCisTable.Rows[0].Columns.length; td++) {
        var tmpx = new Array();
        for (var i = 0; i < pTable_langs.length; i++) {
          tmpx[pTable_langs[i]] = '';
        }
        newRow.Columns[newRow.Columns.length] = tmpx;
      }
    } 
    tmp[tmp.length] = newRow;
  }
  for (var tr = 0; tr < objCisTable.Rows.length; tr++) {
    tmp[tmp.length] = objCisTable.Rows[tr];
    if (tr == nr) {
      newRow = new rowObj();
      for (var td = 0; td < objCisTable.Rows[0].Columns.length; td++) {
        var tmpx = new Array();
        for (var i = 0; i < pTable_langs.length; i++) {
          tmpx[pTable_langs[i]] = '';
        }
        newRow.Columns[newRow.Columns.length] = tmpx;
      } 
      tmp[tmp.length] = newRow;
    }
  } 
  objCisTable.Rows = tmp;
  parEdit_paintTable();
}

function parEdit_rowDelete(nr) {
  parEdit_tableToData();
  tmp = new Array();
  for (var tr = 0; tr < objCisTable.Rows.length; tr++) {
    if (tr != nr) {
      tmp[tmp.length] = objCisTable.Rows[tr];
    }
  } 
  objCisTable.Rows = tmp;
  parEdit_paintTable();
}

function parEdit_rowToComment(nr) {
  parEdit_tableToData();
  for (var i = 0; i < pTable_langs.length; i++) {
    objCisTable.Rows[nr].Comment[pTable_langs[i]] = '';
  }
  objCisTable.Rows[nr].isComment = true;
  parEdit_paintTable();
}

function parEditEditBasket(tr) {
  newVal = prompt('Popis položky pro košík', objCisTable.Rows[tr].Basket[pTable_openLang]);
  if (newVal != null) {
    objCisTable.Rows[tr].Basket[pTable_openLang] = parEdit_trim(newVal);
    document.getElementById('pTable_' + tr + '_Basket_' + pTable_openLang).value = objCisTable.Rows[tr].Basket[pTable_openLang];
    document.getElementById('parEditEditBasket_' + tr).src = 
        objCisTable.Rows[tr].Basket[pTable_openLang] == '' ? 'parEdit/parEdit_basketFAIL.png' : 'parEdit/parEdit_basketOK.png';
    document.getElementById('parEditEditBasket_' + tr).title = 'popis pro košík: ' + objCisTable.Rows[tr].Basket[pTable_openLang];
  }
}

// 'popis pro košík: ''poznámka k položce: ''alternativy: ''akční cena: '

function parEditEditComment(tr) {
  newVal = prompt('Poznámka k položce', objCisTable.Rows[tr].Comment[pTable_openLang]);
  if (newVal != null) {
    objCisTable.Rows[tr].Comment[pTable_openLang] = parEdit_trim(newVal);
    document.getElementById('pTable_' + tr + '_Comment_' + pTable_openLang).value = objCisTable.Rows[tr].Comment[pTable_openLang];
    document.getElementById('parEditEditComment_' + tr).src = 
        objCisTable.Rows[tr].Comment[pTable_openLang] == '' ? 'parEdit/parEdit_commentFAIL.png' : 'parEdit/parEdit_commentOK.png';
    document.getElementById('parEditEditComment_' + tr).title = 'poznámka k položce: ' + objCisTable.Rows[tr].Comment[pTable_openLang];
  }
}

function parEditEditAlternatives(tr) {
  newVal = prompt('Alternativy', objCisTable.Rows[tr].Alternatives);
  if (newVal != null) {
    objCisTable.Rows[tr].Alternatives = parEdit_trim(newVal);
    document.getElementById('pTable_' + tr + '_Alternatives').value = objCisTable.Rows[tr].Alternatives;
    document.getElementById('parEditEditAlternatives_' + tr).src = 
        objCisTable.Rows[tr].Alternatives == '' ? 'parEdit/parEdit_altFAIL.png' : 'parEdit/parEdit_altOK.png';
    document.getElementById('parEditEditAlternatives_' + tr).title = 'alternativy: ' + objCisTable.Rows[tr].Alternatives;
  }
}

function parEditEditReplaceObjCis(tr) {
  newVal = prompt('Nahrazeno', objCisTable.Rows[tr].ReplaceObjCis);
  if (newVal != null) {
    objCisTable.Rows[tr].ReplaceObjCis = parEdit_trim(newVal);
    document.getElementById('pTable_' + tr + '_ReplaceObjCis').value = objCisTable.Rows[tr].ReplaceObjCis;
    document.getElementById('parEditEditReplaceObjCis_' + tr).src = 
        objCisTable.Rows[tr].ReplaceObjCis == '' ? 'parEdit/parEdit_replaceFAIL.png' : 'parEdit/parEdit_replaceOK.png';
    document.getElementById('parEditEditReplaceObjCis_' + tr).title = 'nahrazeno: ' + objCisTable.Rows[tr].ReplaceObjCis;
  }
}

function parEditEditActPrice(tr) {
  newVal = prompt('Akční cena', objCisTable.Rows[tr].ActPrice);
  if (newVal != null) {
    objCisTable.Rows[tr].ActPrice = parEdit_trim(newVal);
    document.getElementById('pTable_' + tr + '_ActPrice').value = objCisTable.Rows[tr].ActPrice;
    document.getElementById('parEditEditActPrice_' + tr).src = 
        objCisTable.Rows[tr].ActPrice == '' ? 'parEdit/parEdit_actpriceFAIL.png' : 'parEdit/parEdit_actpriceOK.png';
    document.getElementById('pTable_' + tr + '_Price').className = 
        objCisTable.Rows[tr].ActPrice == '' ? 'pTableIntext' : 'pTableIntext pTableAct';
    document.getElementById('parEditEditActPrice_' + tr).title = 'akční cena: ' + objCisTable.Rows[tr].ActPrice;
 }
}

function parEditEdit24(tr) {
  objCisTable.Rows[tr].Is24 = objCisTable.Rows[tr].Is24 == '2' ? '0' : '2';
  document.getElementById('pTable_' + tr + '_Is24').value = objCisTable.Rows[tr].Is24;
  document.getElementById('parEditEdit24_' + tr).src = 
      objCisTable.Rows[tr].Is24== '0' ? 'parEdit/parEdit_24FAIL.png' : 'parEdit/parEdit_24OK.png';
  document.getElementById('parEditEdit24_' + tr).title = '24: ' + (objCisTable.Rows[tr].Is24 == '2' ? 'ANO' : 'NE');
}

function parEdit_GetKeyCode(e) {

  return window.event ? (window.event.charCode ? window.event.charCode : window.event.keyCode) :
                         (e.charCode ? e.charCode : e.keyCode);
  
  if (e) {
    return e.charCode ? e.charCode : e.keyCode;
  }
  else {
    return window.event.charCode ? window.event.charCode : window.event.keyCode;
  }
} 

function getCaret(node) {
   var iCaretPos = 0;
   if (document.selection) { 
     node.focus ();
     var oSel = document.selection.createRange ();
     oSel.moveStart ('character', -node.value.length);
     iCaretPos = oSel.text.length;
   }
   else if (node.selectionStart || node.selectionStart == '0')
     iCaretPos = node.selectionStart;
   return (iCaretPos);
}

function setCaret(node, toEnd) {
  if (document.selection) { 
    node.focus ();
    var oSel = document.selection.createRange ();
    oSel.moveStart ('character', -node.value.length);
    oSel.moveStart ('character', toEnd == 1 ? node.value.length + 1 : 0);
    oSel.moveEnd ('character', 0);
    oSel.select ();
  }
  
  else if (node.selectionStart || node.selectionStart == '0') {
    node.selectionStart = toEnd == 1 ? node.value.length + 1: 0;
    node.selectionEnd = toEnd == 1 ? node.value.length + 1: 0;
    node.focus ();
  }
}

lastKeyIsForUpdate = false;

function cKeysDupl(aObj) {
  if (lastKeyIsForUpdate) {
    idx = aObj.id;
    idx = idx.split('_');
    
    idx2 = parseInt(idx[2]);
    if (pTable_propis == 1 && (idx2 + 0 == idx[2])) {
      idx1 = parseInt(idx[1]);  
      for (var i = 0; i < pTable_langs.length; i++) {
        if (pTable_langs[i] == pTable_openLang) {continue;}
        document.getElementById('pTable_' + idx1 + '_' + idx2 + '_' + pTable_langs[i]).value = aObj.value;
      }
    }
  }
}

function cKeysGo(aObj,e,cellCnt) {
  lastKeyIsForUpdate = false;
  key = parEdit_GetKeyCode(e);
  idx = aObj.id;
  idx = idx.split('_');
  xcaret = getCaret(aObj);
  xlen = aObj.value.length;
  //alert(xcaret + ' - ' + xlen);  
  
  //aObj.type = text NEBO textarea;
  if (key == 37) { //Left
    if (xcaret > 0) {
      return;
    }
    if (idx[2] == 'ObjCis') {
    } else if (idx[2] == 'KatCis') {
      idx[2] = 'ObjCis';
    } else if (idx[2] == 'Price') {
      idx[2] = 'VAT';
    } else if (idx[2] == 'VAT') {
      idx[2] = 'Package';
    } else if (idx[2] == 'Package') {
      idx[2] = (cellCnt-1);
      idx[3] = pTable_openLang;
    } else if (idx[2] == '0') {
      idx = [idx[0], idx[1], 'KatCis'];
    } else {
      idx[2]--;
    }
    idx = idx.join('_');
    if (document.getElementById(idx)) {
      obj = document.getElementById(idx);
      obj.focus();
      setCaret(obj,1);
    }

  } else if (key == 38) { //Up
    row = idx[1] - 1; 
    idx[1]--;
    idx = idx.join('_');
    obj = document.getElementById(idx);
    if (!obj) {
      obj = document.getElementById('pTable_' + row + '_0_' + pTable_openLang);
    }
    if (!obj) {
      obj = document.getElementById('pTable_' + row + '_ObjCis');
    }
    if (obj) {
      obj.focus();
      setCaret(obj,0);
    }  

  } else if (key == 39) { //Right
    if (xcaret < xlen) {
      return;
    }
    if (idx[2] == 'ObjCis') {
      idx[2] = 'KatCis';
    } else if (idx[2] == 'KatCis') {
      idx[2] = 0;
      idx[3] = pTable_openLang;
    } else if (idx[2] == 'Package') {
      idx[2] = 'VAT';
    } else if (idx[2] == 'VAT') {
      idx[2] = 'Price';
    } else if (idx[2] == 'Price') {
    } else if (idx[2] == (cellCnt-1)) {
      idx = [idx[0], idx[1], 'Package'];
    } else {
      idx[2]++;
    }
    idx = idx.join('_');
    if (document.getElementById(idx)) {
      obj = document.getElementById(idx);
      obj.focus();
      setCaret(obj,0);
    }
    
  } else if (key == 40) { //Down
    row = idx[1] + 1; 
    idx[1]++;
    idx = idx.join('_');
    obj = document.getElementById(idx);
    if (!obj) {
      obj = document.getElementById('pTable_' + row + '_0_' + pTable_openLang);
    }
    if (!obj) {
      obj = document.getElementById('pTable_' + row + '_ObjCis');
    }
    if (obj) {
      obj.focus();
      setCaret(obj,0);
    }  

  } else {
    lastKeyIsForUpdate = true;
  }
}

function switchPropis(ima) {
  pTable_propis = pTable_propis == 1 ? 0 : 1;
  document.getElementById('editPropisBtn').src = 'slices/propis.php?editPropis=' + pTable_propis + '&r=' + Math.round(Math.random()*100000);
}
