var reg = /[\s]/g;
function findPos(obj) {
var curleft = curtop = 0;
if (obj.offsetParent)
do {
curleft += obj.offsetLeft;
curtop += obj.offsetTop;
} while (obj = obj.offsetParent);
return [curleft,curtop];
}
function generateSelectOptions(arr, selected) {
var tmp = '';
for(x in arr) {
tmp += '';
}
return tmp;
}
function NumberToUserFormatNumber(number,add) {
if(!number) number = 0;
number = parseFloat(number);
//var tmp = number.toFixed(OPT['dec_len']);
var tmp = number.toFixed(2);
//var s1 = tmp.substring(0,tmp.length-1-OPT['dec_len']);
var s1 = tmp.substring(0,tmp.length-1-2);
//var s2 = tmp.substring(tmp.length-OPT['dec_len'],tmp.length);
var s2 = tmp.substring(tmp.length-2,tmp.length);
var tmp = '';
for(var i=s1.length;i>0;i-=3) {
// tmp = ((i<=3)?"":OPT['sep_1000'])+s1.substring(i-3,i)+tmp;
tmp=s1.substring(i-3,i)+tmp;
if (i>3) tmp = '.' + tmp;
}
s1 = tmp;
//return (s1+OPT['dec_sep']+s2).toString()+((add)?add:'');
return (s1+','+s2).toString()+((add)?add:'');
}
function UserFormatNumberToNumber(ufn,add) {
if(add) {
var match = /add/g;
ufn = ufn.replace(match,'');
}
var match = /Err/g;
ufn = ufn.replace(match,'');
if(!ufn) return parseFloat(0);
var pos = ufn.indexOf(OPT['dec_sep']);
var s1='', s2='';
if(pos==-1) { s1 = ufn; s2 = ''; }
else { s1 = ufn.substring(0,pos); s2 = ufn.substring(pos+1,ufn.length); }
/*
if(OPT['sep_1000'] != "")
for(var i=s1.length-4;i>=0;i-=4)
if(s1.charAt(i) != OPT['sep_1000']) { return -1; }
if(s1.charAt(0) == OPT['sep_1000']) return -1;
*/
var pos = -1;
while((pos = s1.indexOf(OPT['sep_1000'])) != -1)
s1 = s1.substring(0,pos)+s1.substring(pos+1,s1.length);
//alert(s1);
return parseFloat(s1+"."+s2);
}
function keyPressedNumber(e) {
var keynum;
if(window.event) //IE
keynum = e.keyCode;
else
keynum = e.which;
return keynum;
}
function isEnterOrTabPressed(e) {
var keynum = keyPressedNumber(e);
if(keynum == 9 || keynum == 13) return true; else return false;
}
function setSelectionRange(obj) {
if(obj && typeof(obj) == "object" && (obj.type == "text" || obj.type == "textarea")) {
if(obj.createTextRange) {
var range = obj.createTextRange();
range.moveStart("character", 0);
range.moveEnd("character", obj.value.lengh-1);
range.select();
} else {
if(obj.setSelectionRange) {
obj.setSelectionRange(0,obj.value.length);
}
}
obj.focus();
}
if(obj && typeof(obj) == "object" && obj.options) { obj.focus(); }
}
/*
function keyPressed = function(e, method) {
var keynumkey = PressedNumber(e);
if((keynum == 9) || (keynum == 13)) {
//this.calculateTotal();
//if(this.selectedCell.lp == 1) setTimeout( function() { N.selectNextCell(); } , 100);
//this.selectNextCell();
return false;
}
//if(keynum == 40) this.selectNextRow();
//if(keynum == 38) this.selectPreviousRow();
if(e.shiftKey && (method == "decimalNumber" || method == "onlyNumber")) return false;
if(method == "decimalNumber") return this.OnlyNumbers(keynum);
if(method == "onlyNumber") return this.OnlyNumbers(keynum, true);
return true;
}
this.OnlyNumbers = function(e, noInvoiceOut) {
var keynum = e, keychar, numcheck;
keychar = String.fromCharCode(keynum);
numcheck = /\d/;
return numcheck.test(keychar)
|| ((!noInvoiceOut)?(keynum == 190):false)
|| (keynum == 8) //backspace
|| (keynum == 13) //enter
|| (keynum == 0) //special keys with FF
|| (keynum == 37) //left arrow
|| (keynum == 39) //right arrow
|| (keynum == 188) //,
|| (keynum >= 95 && keynum <= 105) //numeric keyboard
|| (keynum == 110);
}
*/
function MyTable(name) {
console.log(name);
this.myTableName = name;
this.table = document.getElementById(this.myTableName);
this.thead = this.table.tHead;
this.tbody = this.table.tBodies.item(0);
this.cellSelectedClass = 'selectedCell';
this.rowSelectedClass = 'selectedRow';
this.selectedRow;
this.selectedCell;
this.divParent;
this.rowCount = function() {
return this.tbody.rows.length;
}
this.colCount = function() {
return this.thead.rows.item(0).cells.length;
};
this.colWidth = function(i) {
return this.thead.rows.item(0).cells.item(i).width;
};
this.moveUpRow = function() {
if(this.selectedRow) this.selectedRow.moveUp();
};
this.moveDownRow = function() {
if(this.selectedRow) this.selectedRow.moveDown();
};
this.insertRow = function(row, newRow) {
if(!row)
if(this.rowCount())
if(typeof(row) == "number")
row = this.tbody.rows.item(row);
else
row = this.tbody.rows.item(this.tbody.rows.length-1);
var row_tmp;
if((newRow) && (row)) row_tmp = newRow; else { row_tmp = this.createRow(); this.fillWithDefaultData(row_tmp); }
if(this.rowCount() > 0 && row.nextSibling)
this.tbody.insertBefore(row_tmp, row.nextSibling);
else
this.tbody.appendChild(row_tmp);
return row_tmp;
};
/*
this.deleteRow = function(row) {
if(!row)
if(this.rowCount())
if(typeof(row) == "number")
row = this.tbody.rows.item(row);
else
row = this.tbody.rows.item(this.tbody.rows.length-1);
if(!row) return;
if(row.nextSibling) this.selectNextRow();
else if(row.previousSibling) this.selectPreviousRow();
this.tbody.removeChild(row);
this.deselectRow();
this.deselectCell();
if(this.rowCount() == 0)
setTimeout( function() { N.insertRow(); } , 1000);
}
this.changeRowMode = function(row) {
row.isnew = !row.isnew;
this.setEditNames(row,!row.isnew);
var img = row.firstChild.nextSibling.lastChild.previousSibling.previousSibling;
if(row.isnew)
img.setAttribute('src','modules/EcmInvoiceOuts/images/newproductset.gif');
else
img.setAttribute('src','modules/EcmInvoiceOuts/images/newproduct.gif');
}
*/
this.refreshRowIndex = function() {
for(var i=0; i 0) {
try {
if(typeof(i) != "undefined") {
var r = i;
if(typeof(i) == "object") {}
else if(typeof(i) == "number") r = this.tbody.rows.item(i - 1);
if(this.isProductLoaded(r.cells.item(0)) == false) { return 0; }
}
} catch(e) { return 0; }
}
var row = this.createRow();
if(this.selectedRow) this.selectedRow.deselect();
if(this.selectedCell) this.selectedCell.deselect();
row.myTable = this;
if(typeof(i) == "number")
this.tbody.insertBefore(row,this.tbody.rows.item(i));
else
this.tbody.appendChild(row);
this.refreshRowIndex();
this.setRowData(row, data);
for(var i=0; i (this.myTable.divParent.offsetHeight+5)) || ((this.offsetTop-this.myTable.divParent.scrollTop) < (-10))) this.myTable.divParent.scrollTop = this.offsetTop;
}
}
row.deselect = function() {
if(this.myTable.selectedRow === this) {
this.className = '';
this.myTable.selectedRow = '';
if(row.onDeselect) row.onDeselect();
}
};
row.calculateTotal = function() {};
row.selectNext = function() {
if(this.index < this.myTable.rowCount()-1) { this.deselect(); this.nextSibling.select(); return this.nextSibling; }
else {
if(this.noAddNew) return this;
this.deselect();
var row = this.myTable.addRow(); return row;
}
}
row.selectPrevious = function() {
this.deselect();
if(this.previousSibling) { this.previousSibling.select(); return this.previousSibling; }else return this;
}
row.deleteRow = function(noNew) {
if(this.myTable.selectedCell) this.myTable.selectedCell.deselect();
if(this.myTable.selectedRow) this.myTable.selectedRow.deselect();
if(this.myTable.rowCount() == 1 && !noNew) {
var MyTaBlE = this.myTable;
setTimeout( function() { MyTaBlE.addRow(); } , 1000);
}
this.myTable.tbody.removeChild(this);
this.myTable.refreshRowIndex();
calculateTotal();
}
row.moveUp = function() {
if(!this.previousSibling) return;
this.myTable.tbody.insertBefore(this,this.previousSibling);
this.myTable.refreshRowIndex();
}
row.moveDown = function() {
if(!this.nextSibling) this.myTable.addRow(row);
this.myTable.tbody.insertBefore(this.nextSibling,this);
this.myTable.refreshRowIndex();
}
row.setData = function(data) {
if(!data || typeof(data) != "object") { return; };
for(var i=0; i= 95 && keynum <= 105) //numeric keyboard
|| (keynum == 110);
}
this.row = function(i) { if(this.tbody.rows.item(i)) return this.tbody.rows.item(i); }
this.cells = function(i,j) { if(this.tbody.rows.item(i).cells.item(i)) return this.tbody.rows.item(i).cells.item(i); }
}
// var N;
var parent_options;
/*
function ItemListSave(json) {
if(N.selectedCell) N.selectedCell.deselect();
if(N.selectedRow) N.selectedRow.deselect();
var data = new Object();
for(var i=0; i0) N.row(0).deleteRow();
}
*/
function ItemListFill(list) {
/*
var start_list_count = 6;
var count = 0;
var arr = '';
if(list)
arr = list;
else
if(document.getElementById('position_list').value!="")
arr = eval(document.getElementById('position_list').value);
if(arr != '')
for(x in arr) {
N.insertRowFromArray(arr[x]);
count++;
}
for(var i=count; i