// HOTELDRUID
// Copyright (C) 2001-2011 by Marco Maria Francesco De Santis (marco@digitaldruid.net)
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// any later version accepted by Marco Maria Francesco De Santis, which
// shall act as a proxy as defined in Section 14 of version 3 of the
// license.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.


function punti_in_num (num) {
var n = String(num);
var lung = n.length;
var lett;
var prima = '';
var dopo = '';
var pun = 0;
for (var n1 = 0 ; n1 < lung ; n1++) {
lett = ''+n.substr(n1,1);
if (lett == '.') pun = 1;
else {
if (pun) dopo += lett;
else prima += lett;
}
}
n = prima;
prima = '';
var n2 = 0;
for (n1 = (n.length - 1) ; n1 >= 0 ; n1--) {
lett = ''+n.substr(n1,1);
n2++;
if (n2 > 3) {
prima = punto+prima;
n2 = 0;
}
prima = lett+prima;
}
dopo = dopo.substr(0,2);
if (dopo.length == 0) dopo = '00';
if (dopo.length == 1) dopo += '0';
return prima+virgola+dopo;
}


function elimina_pos_vett (pos,vett) {
var n_vett = new Array();
var n1 = 0;
for (var n2 = 0 ; n2 < vett.length ; n2++) {
if (n2 != pos) {
n_vett[n1] = vett[n2];
n1++;
}
}
return n_vett
}


// punto_vendita.php functions

function aggiungi_linea_pv (id,nome,molt,val,calcolab,moltiplicab) {
ultimo_costo++;
calcolabile[ultimo_costo] = calcolab;
moltiplicabile[ultimo_costo] = moltiplicab;
id_costo[ultimo_costo] = id;
nome_costo[ultimo_costo] = nome;
molt_costo[ultimo_costo] = molt;
val_costo[ultimo_costo] = val;
var tab_costi = document.getElementById('tab_costi');
var riga = tab_costi.insertRow(-1);
riga.style.backgroundColor = colore_corr;
if (colore_corr == t2row1color) colore_corr = t2row2color;
else colore_corr = t2row1color;
var cell1 = riga.insertCell(-1);
var cell2 = riga.insertCell(-1);
var cell3 = riga.insertCell(-1);
cell1.width = '34px';
cell1.height = '34px';
cell1.innerHTML = '<button class=\"pos\" type=\"submit\" name=\"canc_costo\" value=\"'+ultimo_costo+'\" onclick=\"return canc_cos_pv('+ultimo_costo+');\" style=\"padding: 0;\"><img style=\"display: block; padding: 0; border: 0; margin: 0;\" src=\".\/img\/croce.gif\" alt=\"X\"><\/button>';
cell2.innerHTML = nome;
if (molt && molt != 1) cell2.innerHTML += ' <b>x'+molt+'<\/b>';
cell3.width = '40px';
cell3.style.textAlign = 'right';
cell3.innerHTML = punti_in_num(val);
totale = Number(totale) + Number(val);
var txt_tot = punti_in_num(totale);
if (tot_indef) {
if (totale > 0) txt_tot += ' + ?';
else txt_tot = '?';
}
document.getElementById('tot_costi').innerHTML = txt_tot;
if (id_costi != '') id_costi += ',';
else document.getElementById('incassa').disabled = 0;
id_costi += ''+id;
if (molt && molt > 1) id_costi += 'x'+molt;
document.getElementById('id_costi').value = id_costi;
}


function elimina_linea_pv (num_costo) {
document.getElementById('tab_costi').deleteRow(num_costo);
if (colore_corr == t2row1color) colore_corr = t2row2color;
else colore_corr = t2row1color;
totale = Number(totale) - Number(val_costo[num_costo]);
var txt_tot = punti_in_num(totale);
if (tot_indef) {
if (totale > 0) txt_tot += ' + ?';
else txt_tot = '?';
}
document.getElementById('tot_costi').innerHTML = txt_tot;
var id_costi_vett = id_costi.split(',');
id_costi_vett = elimina_pos_vett(num_costo,id_costi_vett);
id_costi = id_costi_vett.join(',');
document.getElementById('id_costi').value = id_costi;
if (id_costi == '') document.getElementById('incassa').disabled = 1;
calcolabile = elimina_pos_vett(num_costo,calcolabile);
moltiplicabile = elimina_pos_vett(num_costo,moltiplicabile);
id_costo = elimina_pos_vett(num_costo,id_costo);
nome_costo = elimina_pos_vett(num_costo,nome_costo);
molt_costo = elimina_pos_vett(num_costo,molt_costo);
val_costo = elimina_pos_vett(num_costo,val_costo);
ultimo_costo--;
var col_lin = colore_corr;
for (var n1 = ultimo_costo ; n1 >= num_costo ; n1--) {
var linea = document.getElementById('tab_costi').rows[n1].firstChild.innerHTML;
linea = linea.replace('value=\"'+(n1 + 1)+'\"','value=\"'+n1+'\"');
linea = linea.replace('canc_cos_pv('+(n1 + 1)+')','canc_cos_pv('+n1+')');
document.getElementById('tab_costi').rows[n1].firstChild.innerHTML = linea;
if (col_lin == t2row1color) col_lin = t2row2color;
else col_lin = t2row1color;
document.getElementById('tab_costi').rows[n1].style.backgroundColor = col_lin;
}
}


function ins_cos_pv (id,nome,molt,val,calcolab,moltiplicab) {
aggiungi_linea_pv(id,nome,molt,val,calcolab,moltiplicab);
window.location.hash = 'finetab';
return false;
}


function canc_cos_pv (num) {
elimina_linea_pv(num);
return false;
}


function aggiungi_costi_pv (num_agg) {
if (calcolabile[ultimo_costo] != 1) return true;
var costo_corr = ultimo_costo;
if (moltiplicabile[costo_corr] != 1) {
for (var n1 = 0 ; n1 < num_agg ; n1++) {
aggiungi_linea_pv(id_costo[costo_corr],nome_costo[costo_corr],molt_costo[costo_corr],val_costo[costo_corr],calcolabile[costo_corr],moltiplicabile[costo_corr]);
}
}
else {
var id = id_costo[costo_corr];
var nome = nome_costo[costo_corr];
var val = Number(val_costo[costo_corr]);
var molt = molt_costo[costo_corr];
if (!molt) molt = 1;
molt = Number(molt);
var val_base = Math.round((val / molt) * 100) / 100;
molt += Number(num_agg);
val = val_base * molt;
var calcolab = calcolabile[costo_corr];
var moltiplicab = moltiplicabile[costo_corr];
elimina_linea_pv(ultimo_costo);
aggiungi_linea_pv(id,nome,molt,val,calcolab,moltiplicab);
}
window.location.hash = 'finetab';
return false;
}


function moltiplica_costi_pv (num_molt) {
if (calcolabile[ultimo_costo] != 1) return true;
if (moltiplicabile[ultimo_costo] != 1) aggiungi_costi_pv(num_molt - 1);
else {
var molt = molt_costo[ultimo_costo];
if (!molt) molt = 1;
molt = Number(molt);
var n_molt = Number(num_molt) * molt;
aggiungi_costi_pv(n_molt - molt);
}
return false;
}


function sottrai_costi_pv (num_sott) {
if (calcolabile[ultimo_costo] != 1) return true;
if (moltiplicabile[ultimo_costo] != 1) elimina_linea_pv(ultimo_costo);
else {
var id = id_costo[ultimo_costo];
var nome = nome_costo[ultimo_costo];
var val = Number(val_costo[ultimo_costo]);
var molt = molt_costo[ultimo_costo];
if (!molt) molt = 1;
molt = Number(molt);
var val_base = Math.round((val / molt) * 100) / 100;
molt = molt - Number(num_sott);
var calcolab = calcolabile[ultimo_costo];
var moltiplicab = moltiplicabile[ultimo_costo];
elimina_linea_pv(ultimo_costo);
if (molt > 0) {
val = val_base * molt;
aggiungi_linea_pv(id,nome,molt,val,calcolab,moltiplicab);
}
}
return false;
}