Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.05.2011, 14:06
Новичок на форуме
Отправить личное сообщение для вита Посмотреть профиль Найти все сообщения от вита
 
Регистрация: 19.05.2011
Сообщений: 2

как расчитать сумму массива
Хочу разобраться с функциями автокалькулятора найденного на просторах интерента. Как мне внести и вывести свою сумму в данный скрипт, помогите плиз.
<SCRIPT language=JavaScript><!--
BlackInk= new Array(50,37,30,25,21,18,16,14,13);
ColorInk= new Array(85,57,45,37,31,25,21,18,17);
Cut= new Array(3,0);
Paper= new Array(30,33,66,64,0,95,167,460,26,6,47,195);
Ves= new Array(65,80,80,80,0,120,160,178,80,0,80,200);
Falcov= new Array(30,10000);
Bigov= new Array(200,10000);
Cutk= new Array(0,1,2,3,4,5,7,8,9,11,13,14,15,17,19,20,21,23 ,24,25,26,27,29);
function kalk() {
var forma = document.form;
t = forma.tir.value;
f = forma.format.value;
sk = forma.ski.value;
var kcf;
var res2 = 0;
forma.rezz.value = "";
forma.rezzC.value = "";
forma.rezz2.value = "";
forma.rezz2C.value = "";
forma.rezz3.value = "";
forma.rezz3C.value = "";
forma.rezz4.value = "";
forma.rezz4C.value = "";
forma.rezz5.value = "";
forma.rezz5C.value = "";
forma.rezz0.value = "";
forma.rezz0C.value = "";
forma.rezz1.value = "";
forma.rezz1C.value = "";
forma.rezz0sk.value = "";
forma.rezz0skC.value = "";
forma.rezz0sk1R.value = "";
forma.rezz0sk1C.value = "";
forma.vez.value = "";
forma.obz1.value = "";
forma.obz2.value = "";
forma.obz3.value = "";
forma.obz4.value = "";
forma.liz1.value = "";
forma.liz2.value = "";
if (t == "") {
alert ("Какой тираж?\n\_______________");
forma.tir.focus();
}
else {
for (i=0; i<forma.format.length; i++) {
if (forma.format[i].checked == true) {
var f = forma.format[i].value;
break
}
}
for (i=0; i<forma.pap.length; i++) {
if (forma.pap[i].selected == true) {
var p = forma.pap[i].value;
break
}
}
for (i=0; i<forma.cut.length; i++) {
if (forma.cut[i].selected == true) {
var c = forma.cut[i].value;
break
}
}
for (i=0; i<forma.fal.length; i++) {
if (forma.fal[i].selected == true) {
var falc = forma.fal[i].value;
break
}
}
for (i=0; i<forma.big.length; i++) {
if (forma.big[i].selected == true) {
var bigs = forma.big[i].value;
break
}
}
if (forma.kr10.checked == true) kr10 = 1;
else kr10 = 0;
if (forma.kr20.checked == true) kr20 = 1;
else kr20 = 0;
if (forma.kr30.checked == true) kr30 = 1;
else kr30 = 0;
if (forma.kr40.checked == true) kr40 = 1;
else kr40 = 0;
if (forma.kr50.checked == true) kr50 = 1;
else kr50 = 0;
if (forma.kr60.checked == true) kr60 = 1;
else kr60 = 0;
if (forma.kr70.checked == true) kr70 = 1;
else kr70 = 0;
if (forma.kr80.checked == true) kr80 = 1;
else kr80 = 0;
if (forma.kr01.checked == true) kr01 = 1;
else kr01 = 0;
if (forma.kr02.checked == true) kr02 = 1;
else kr02 = 0;
if (forma.kr03.checked == true) kr03 = 1;
else kr03 = 0;
if (forma.kr04.checked == true) kr04 = 1;
else kr04 = 0;
if (forma.kr05.checked == true) kr05 = 1;
else kr05 = 0;
if (forma.kr06.checked == true) kr06 = 1;
else kr06 = 0;
if (forma.kr07.checked == true) kr07 = 1;
else kr07 = 0;
if (forma.kr08.checked == true) kr08 = 1;
else kr08 = 0;
var k3 = 1;
var kcf = 0;
var krezviz = 0;

if (f == "A3") k3 = 2;
if (f == "A5") kcf = 1;
if (f == "A6") kcf = 3;
if (f == "евро") kcf = 2;
if (f == "визитка") {kcf = 11; krezviz = 4}
var rt = Math.ceil(t/(kcf+1));
if (kr70+kr07 > 0) var noA3 = "краской бургундия.";
if (kr80+kr08 > 0) var noA3 = "изумрудной краской.";
if (rt >= 1) {
if (f != "A3" || f == "A3" && kr70+kr07+kr80+kr08 == 0) {
if (f != "A3" || f == "A3" && p != 7) {
if (p != 8 || p == 8 && kr01+kr02+kr03+kr04+kr05+kr06+kr07+kr08 == 0) {
if (p != 7 || p == 7 && kr01+kr02+kr03+kr04+kr05+kr06+kr07+kr08 == 0) {
if (p != 0 || p == 0 && kr01+kr02+kr03+kr04+kr05+kr06+kr07+kr08+kr10+kr20+ kr30+kr40+kr50+kr60+kr70+kr80 <= 1) {
if (f != "A3" || f == "A3" && p != 0) {
if (p == 4 || p == 5) alert ("ВНИМАНИЕ !\nВыбранная бумага покупается под заказ.\nСрок закупки 4-6 дней после оплаты.\n\n_________");
if (p == 9) alert ("ВНИМАНИЕ !\nДля печати на ризографе мы принимаем только хорошую бумагу.\nПлотность бумаги от 80 до 210 гр/м2.\nВыясните марку бумаги и проконсультируйтесь по телефону ___________.\n\n_________");
if (f == "A5" && c != 0 || f == "A6" && c != 0 || f == "евро" && c != 0 || f == "визитка" && c != 0) alert ("ВНИМАНИЕ !\nВы уверены, что отпечатанный тираж, уже порезанный до формата " + f + ",\nнужно ЕЩЕ РАЗ ПОРЕЗАТЬ ?\n\n___________");
if (kr01+kr02+kr03+kr04+kr05+kr06+kr07+kr08 > 1 || kr10+kr20+kr30+kr40+kr50+kr60+kr70+kr80 > 1) alert ("ВНИМАНИЕ !\nНа ризографе есть ограничения при печати в несколько красок.\nСоветуем Вам проконсультироваться по телефонам:\n_____________\n\n__________") ;
if (f == "визитка") alert ("Обратите внимание, что визитки отпечатанные на ризографе это не классические красивые визитки,\nа очень дешевые визитки для раздачи на улице.\n\nКрасивые солидные визитки мы можем напечатать на полноцветной цифровой машине.\nДля расчета классических цветных визиток есть другой калькулятор.\n\n________________");
if (rt>=100 && rt<200) {var nt1 = 0; var rt1 = 100; var rt2 = 200}
if (rt>=200 && rt<300) {var nt1 = 1; var rt1 = 200; var rt2 = 300}
if (rt>=300 && rt<400) {var nt1 = 2; var rt1 = 300; var rt2 = 400}
if (rt>=400 && rt<500) {var nt1 = 3; var rt1 = 400; var rt2 = 500}
if (rt>=500 && rt<1000) {var nt1 = 4; var rt1 = 500; var rt2 = 1000}
if (rt>=1000 && rt<2000) {var nt1 = 5; var rt1 = 1000; var rt2 = 2000}
if (rt>=2000 && rt<5000) {var nt1 = 6; var rt1 = 2000; var rt2 = 5000}
if (rt>=5000 && rt<10000) {var nt1 = 7; var rt1 = 5000; var rt2 = 10000}
var nt2 = nt1+1;
if (rt<100) {var RBlackInk = 100*BlackInk[0]/rt; var RColorInk = 100*ColorInk[0]/rt}
if (rt>=100 && rt<10000) {var RBlackInk = BlackInk[nt1]-(BlackInk[nt1]-BlackInk[nt2])*(rt-rt1)/(rt2-rt1); var RColorInk = ColorInk[nt1]-(ColorInk[nt1]-ColorInk[nt2])*(rt-rt1)/(rt2-rt1)}
if (rt>=10000) {var RBlackInk = BlackInk[8]; var RColorInk = ColorInk[8]}
var res = Math.round(((kr10+kr01)*RBlackInk+(kr20+kr30+kr40+ kr50+kr60+kr70+kr80+kr02+kr03+kr04+kr05+kr06+kr07+ kr08)*RColorInk)*rt*k3);
var resR = Math.floor(res*0.01);
var resC = Math.floor(res-resR*100);
if (resC >= 0 && resC <= 9) var resC = "0" + resC;
forma.rezz.value = resR;
forma.rezzC.value = resC;
var VesRezki = 1;
if (p == 5 || p == 6 || p == 7 || p == 11) var VesRezki = 2;
var res2 = Math.round((Cut[0]*(Cutk[c]*t+(kcf+krezviz)*rt))*VesRezki);
if (rt <= 300/VesRezki) res2 = Math.round(Cut[0]*(Cutk[c]*300*(kcf+1)+(kcf+krezviz)*300));
var res2R = Math.floor(res2*0.01);
var res2C = Math.floor(res2-res2R*100);
if (res2C >= 0 && res2C <= 9) var res2C = "0" + res2C;
forma.rezz2.value = res2R;
forma.rezz2C.value = res2C;
var res3 = Math.round(Paper[p]*rt*k3);
var res3R = Math.floor(res3*0.01);
var res3C = Math.floor(res3-res3R*100);
if (res3C >= 0 && res3C <= 9) var res3C = "0" + res3C;
forma.rezz3.value = res3R;
forma.rezz3C.value = res3C;
var res4 = 0;
if (falc != "0") var res4 = Math.round(Falcov[0]*t*(Cutk[c]+1))+Falcov[1];
var res4R = Math.floor(res4*0.01);
var res4C = Math.floor(res4-res4R*100);
if (res4C >= 0 && res4C <= 9) var res4C = "0" + res4C;
forma.rezz4.value = res4R;
forma.rezz4C.value = res4C;
var res5 = Math.round(Bigov[0]*t*(Cutk[c]+1)*bigs)+Bigov[1]*bigs;
var res5R = Math.floor(res5*0.01);
var res5C = Math.floor(res5-res5R*100);
if (res5C >= 0 && res5C <= 9) var res5C = "0" + res5C;
forma.rezz5.value = res5R;
forma.rezz5C.value = res5C;
var res0 = res+res2+res3+res4+res5;
var res0R = Math.floor(res0*0.01);
var res0C = Math.floor(res0-res0R*100);
if (res0C >= 0 && res0C <= 9) var res0C = "0" + res0C;
forma.rezz0.value = res0R;
forma.rezz0C.value = res0C;
var res1 = Math.round(res0/(t*(Cutk[c]+1)));
var res1R = Math.floor(res1*0.01);
var res1C = Math.floor(res1-res1R*100);
if (res1C >= 0 && res1C <= 9) var res1C = "0" + res1C;
forma.rezz1.value = res1R;
forma.rezz1C.value = res1C;
var res0sk = res0-sk*res0*0.01;
var res0skR = Math.floor(res0sk*0.01);
var res0skC = Math.floor(res0sk-res0skR*100);
if (res0skC >= 0 && res0skC <= 9) var res0skC = "0" + res0skC;
forma.rezz0sk.value = res0skR;
forma.rezz0skC.value = res0skC;
var res0sk1 = Math.round(res0sk/(t*(Cutk[c]+1)));
var res0sk1R = Math.floor(res0sk1*0.01);
var res0sk1C = Math.floor(res0sk1-res0sk1R*100);
if (res0sk1C >= 0 && res0sk1C <= 9) var res0sk1C = "0" + res0sk1C;
forma.rezz0sk1R.value = res0sk1R;
forma.rezz0sk1C.value = res0sk1C;
var ves = Math.round(Ves[p]*rt*k3*0.0006237)/10;
forma.vez.value = ves;
var obs1 = Math.round(ves*10/2.5)/10;
var obs2 = Math.round(ves*10/5)/10;
var obs3 = Math.round(ves*10/12.5)/10;
var obs4 = Math.round(ves*10/25)/10;
forma.obz1.value = obs1;
forma.obz2.value = obs2;
forma.obz3.value = obs3;
forma.obz4.value = obs4;
var lis1 = Math.round(rt*k3);
var lis2 = Math.round(rt*k3/2);
forma.liz1.value = lis1;
forma.liz2.value = lis2;

}
}
}
-->
</SCRIPT>
Ответить с цитированием
  #2 (permalink)  
Старый 19.05.2011, 14:22
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от вита
Хочу разобраться с функциями автокалькулятора найденного на просторах интерента.
Чего же ты такого хочешь калькулировать? Может стоит плясать не от какого-то скрипта... А от собственных нужд?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Как удалить повторные элементы из массива? YISHIMITSY Общие вопросы Javascript 1 04.05.2010 00:04
Как узнать, присутствует ли в окне полоса прокрутки или нет? возжаждавший Элементы интерфейса 6 12.03.2010 23:00
Как сделать электронный каталог продукции? natarius Серверные языки и технологии 6 24.05.2009 20:56
Можно ли как для произвольного массива создавать вызовы функций , имеющих на входе kefi Общие вопросы Javascript 3 17.04.2009 16:53