Greasy Fork is available in English.

Virtonomica:Снабжение

Добавление расширенной функциональности вкладки Снабжение

Устаревшая версия на 26.05.2016. Перейти к последней версии.

// ==UserScript==
// @name           Virtonomica:Снабжение
// @namespace      virtonomica
// @version        1.510
// @description    Добавление расширенной функциональности вкладки Снабжение
// @author         UnclWish
// @include        http://*virtonomic*.*/*/main/unit/view/*/supply
// ==/UserScript==

var run = function() {
	var win = (typeof(unsafeWindow) != 'undefined' ? unsafeWindow : top.window);
	$ = win.$;
	var txt = [],
		ko = [],
		scl = [],
		txt1 = [],
		//prc = 0;
		i = 0,
		j = 0,
		closespan = '<span r="windkol" class="closeform" style="float:right;margin-right:10px;color:#f00;font-size:14pt;cursor:pointer;">&#215;</span>',
		p1 = -1,
		p2 = -1,
		form = false;
	scl[370077]=10500000;scl[1509]=105000;scl[422549]=5250000;scl[370080]=70000;scl[15338]=157500;scl[370078]=5250000;scl[1518]=157500;scl[422550]=5250000;scl[370079]=105000;scl[370081]=87500;scl[1525]=2100000;scl[359859]=52500000;scl[359862]=52500000;scl[422552]=10500000;scl[359856]=10500000;scl[422199]=52500000;scl[359861]=52500000;scl[359860]=52500000;scl[15336]=105000000;scl[359863]=52500000;scl[422433]=1050000;scl[422547]=52500000;scl[422434]=4200000;scl[3865]=126000000;scl[335179]=52500000;scl[380000]=52500000;scl[380005]=35000000;scl[1502]=105000000;scl[1522]=1050000000;scl[1503]=105000000;scl[380006]=35000000;scl[335178]=35000000;scl[422197]=52500000;scl[422198]=35000000;scl[1504]=210000000;scl[1505]=52500000;scl[359847]=105000000;scl[335180]=52500000;scl[15748]=105000000;scl[1507]=105000000;scl[380007]=105000000;scl[15334]=5250000;scl[301320]=2625000;scl[422204]=2100000;scl[422203]=5250000;scl[301318]=42000000;scl[312798]=4200000;scl[422437]=10500000;scl[1519]=5250000;scl[1520]=5250000;scl[422650]=3500000;scl[422649]=10500000;scl[301319]=42000000;scl[15742]=262500000;scl[1496]=105000000;scl[1497]=105000000;scl[422553]=52500000;scl[422055]=52500000;scl[3869]=52500000;scl[335181]=52500000;scl[422544]=1105000000;scl[422545]=105000000;scl[422546]=105000000;scl[335176]=35000000;scl[1498]=210000000;scl[15747]=105000000;scl[1489]=73500000;scl[1499]=105000000;scl[1500]=1050000000;scl[1501]=131250000;scl[1490]=17500000;scl[422054]=13125000;scl[335177]=21000000;scl[15744]=262500000;scl[15743]=210000000;scl[15749]=105000000;scl[335174]=21000000;scl[335175]=52500000;scl[1491]=525000000;scl[15750]=105000000;scl[16006]=52500000;scl[373201]=105000000;scl[422205]=52500000;scl[380002]=52500000;scl[1492]=210000000;scl[1506]=367500000;scl[1494]=73500000;scl[1513]=5250000;scl[302897]=525000;scl[1514]=105000000;scl[13708]=105000000;scl[422380]=1050000;scl[422431]=2100000;scl[15335]=105000000;scl[1482]=105000000;scl[15337]=525000;scl[7093]=3675000;scl[7092]=5250000;scl[1523]=3675000;scl[370075]=3500000;scl[1511]=157500000;scl[3965]=2625000;scl[7094]=4200000;scl[3866]=73500000;scl[3966]=105000000;scl[422201]=18750000;scl[303308]=52500000;scl[373199]=420000;scl[7095]=1420000;scl[16007]=52500000;scl[1521]=10500000;scl[303310]=1050000;scl[3870]=4200000;scl[422436]=525000;scl[422435]=1050000;scl[1516]=2100000;scl[312799]=4200000;scl[422200]=8750000;scl[422551]=5250000;scl[3838]=3675000;scl[422432]=525000;scl[1512]=1050000;scl[1515]=525000;scl[380004]=1050000;scl[373200]=1050000;scl[1517]=3675000;scl[373202]=1050000;scl[422212]=2100000;scl[3867]=1050000;scl[3868]=1050000;scl[1510]=1050000;scl[351577]=150045;scl[2540]=10500000;scl[2546]=420000;scl[370076]=105000;scl[380008]=420000;scl[1524]=10500000;scl[1526]=420000;

	function num(num, x){
		num = num.toFixed(2);
		var parts = num.split('.');
		    parts[0] = parts[0].substr(0, parts[0].length%3)+parts[0].substr(parts[0].length%3).replace(/(\d{3})/g,' \$1');
            if(parts[0].length%4 === 0)
                parts[0] = parts[0].slice(1);
            if(x)
			return parts.join('.');
		else
			return parts[0];
		}
	function Calculate1(n){
		$('.divtemp').text('');
		var c = parseInt($('#sc').val()),
			c1 = parseInt($('#sc1').val()),
			x1 = 0,
			x2 = 0,
			k = parseFloat($('#sk').val()),
			k1 = parseFloat($('#sk1').val()),
			k2 = parseFloat($('#sk2').val()),
			k3 = parseFloat($('#sk3').val()),
			cn1 = 0,
			cn2 = parseFloat($('#scn2').val()),
			cn3 = parseFloat($('#scn3').val());
		x1 = Math.round(f1(c, c1, k, k1, k2, k3));
		x2 = Math.round(f1(c, c1, k, k1, k3, k2));
		cn1 = f3(c, c1, x1, x2, cn2, cn3).toFixed(2);

		if($('#svo').attr('checked')){
			if(x1 > txt[p1]['max']){
				x1 = txt[p1]['max'];
				c1 = Math.round(f2(c, x1, k, k1, k2, k3));
				x2 = Math.round(f1(c, c1, k, k1, k3, k2));
				cn1 = f3(c, c1, x1, x2, cn2, cn3).toFixed(2);
			}
			if(x2 > txt[p2]['max']){
				x2 = txt[p2]['max'];
				c1 = Math.round(f2(c, x2, k, k1, k3, k2));
				x1 = Math.round(f1(c, c1, k, k1, k2, k3));
				cn1 = f3(c, c1, x1, x2, cn2, cn3).toFixed(2);
			}
			$('#sc1').val(c1);
		}

		$('#sx1').val(x1);
		$('#sx2').val(x2);
		$('#scn1').val(cn1);

		$('#cenacach').text((cn1 / k1).toFixed(2));
		$('#cenacach1').text((cn2 / k2).toFixed(2));
		$('#cenacach2').text((cn3 / k3).toFixed(2));
		$('#divtemp'+p1).html('<a class="aaddsp1" href="#">_+_</a> <a class="aadds1" href="#">'+x1+'</a>');
		$('#divtemp'+p2).html('<a class="aaddsp2" href="#">_+_</a> <a class="aadds2" href="#">'+x2+'</a>');
		$('.aadds1').unbind('click').click(function(){
			var col = $(this).text();
            if (col > txt[p1]['max']) col = txt[p1]['max'];
            if ($(this).closest('tr').attr('class').substr(0,3)=="odd")
            var name = $(this).closest('tr').attr('class').substr(4,4);
            else
                if ($(this).closest('tr').attr('class').substr(0,3)=='eve')
                var name = $(this).closest('tr').attr('class').substr(5,4);
			$(this).parent().next().val(col);
			if(n === 0) updatetable(8);
			if(n == 1) updatetablepr(7);
			if(n == 2) updatetablesk(name);
			return false;
		});
		$('.aadds2').unbind('click').click(function(){
			var col = $(this).text();
            if (col > txt[p2]['max']) col = txt[p2]['max'];
            if ($(this).closest('tr').attr('class').substr(0,3)=="odd")
            var name = $(this).closest('tr').attr('class').substr(4,4);
            else
                if ($(this).closest('tr').attr('class').substr(0,3)=='eve')
                var name = $(this).closest('tr').attr('class').substr(5,4);
			$(this).parent().next().val(col);
			if(n === 0) updatetable(8);
			if(n == 1) updatetablepr(7);
			if(n == 2) updatetablesk(name);
			return false;
		});

		$('.aaddsp1').unbind('click').click(function(){
			var col = parseInt($(this).next().text());
			var col1 = parseInt($(this).parent().next().val());
			var colo = parseInt(col + col1);
            if (colo > txt[p1]['max']) colo = txt[p1]['max'];
            if ($(this).closest('tr').attr('class').substr(0,3)=="odd")
            var name = $(this).closest('tr').attr('class').substr(4,4);
            else
                if ($(this).closest('tr').attr('class').substr(0,3)=='eve')
                var name = $(this).closest('tr').attr('class').substr(5,4);
			$(this).parent().next().val(colo);
			if(n === 0) updatetable(8);
			if(n == 1) updatetablepr(7);
			if(n == 2) updatetablesk(name);
			return false;
		});
		$('.aaddsp2').unbind('click').click(function(){
			var col = parseInt($(this).next().text());
			var col1 = parseInt($(this).parent().next().val());
			var colo = parseInt(col + col1);
            if (colo > txt[p2]['max']) colo = txt[p2]['max'];
            if ($(this).closest('tr').attr('class').substr(0,3)=="odd")
            var name = $(this).closest('tr').attr('class').substr(4,4);
            else
                if ($(this).closest('tr').attr('class').substr(0,3)=='eve')
                var name = $(this).closest('tr').attr('class').substr(5,4);
			$(this).parent().next().val(colo);
			if(n === 0) updatetable(8);
			if(n == 1) updatetablepr(7);
			if(n == 2) updatetablesk(name);
			return false;
		});
	}
	function fillArray( summ, cach, max ) {
		this.summ = summ;
		this.cach = cach;
		this.max = max;
	}
	function add(id,prod,ar){
		if(prod==1){
			$('#sk2').val(ar[id]['cach']);
			$('#scn2').val(ar[id]['summ']);
			p1 = id;
		}
		if(prod==2){
			$('#sk3').val(ar[id]['cach']);
			$('#scn3').val(ar[id]['summ']);
			p2 = id;
		}
	}
	function print_r(arr, level) {
		var print_red_text = "";
		if(!level) level = 0;
		var level_padding = "";
		for(var j=0; j<level+1; j++) level_padding += "    ";
		if(typeof(arr) == 'object') {
			for(var item in arr) {
				var value = arr[item];
				if(typeof(value) == 'object') {
					print_red_text += level_padding + "'" + item + "' :\n";
					print_red_text += print_r(value,level+1);
			}
				else
					print_red_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
			}
		}

		else  print_red_text = "===>"+arr+"<===("+typeof(arr)+")";
		return print_red_text;
	}
	function f1(c, c1, k, k1, k2, k3){
			x1 = (c1 * (k1 - k3) - c * (k - k3)) / (k2 - k3);
		return x1;
	}
	function f2(c, x1, k, k1, k2, k3){
			c1 = (x1 * (k2 - k3) + c * (k1 - k3)) / (k1 - k3);
		return c1;
	}
	function f3(c, c1, x1, x2, s1, s2){
			s = (s1 * x1 + s2 * x2) / (c1 - c);
		return s;
	}
	function addar(col, summ, cach, brend, max, sc, name, id ) {
		this.col = col;
		this.summ = summ;
		this.cach = cach;
		this.brend = brend;
		this.max = max;
		this.ck = parseFloat((this.summ / this.cach).toFixed(2));
		this.sc = parseFloat(sc) || 0;
		this.name = name || '';
		this.id = id || 0;
	}
	function nullpr(x){
		if(isNaN(x)) x = 0;
		return x;
	}

	var title=$('#unitImage img').attr('src');
	if(title.search('img/v2/units/shop')!=-1 || title.search('img/v2/units/fuel')!=-1){
		form = true;

		function addtablemax(ar, table, t){
			var cf=0, kf=0, cnf=0, cnkf=0, bf=0, b=false;
			for(i=0; i<ar.length; i++){
                if(ar[i]['col'] > ar[i]['max']){
					cf += parseInt(ar[i]['max']);
                    if(ar[i]['col']>0) b = true;}
                else
					cf += parseInt(ar[i]['col']);
			}
			if(cf !== 0){
				for(i=0; i<ar.length; i++){
					if(ar[i]['col'] > ar[i]['max']){
						kf += parseFloat(ar[i]['cach'] * ( ar[i]['max'] / cf ));
						cnf += parseFloat(ar[i]['summ'] * ( ar[i]['max'] / cf ));
						bf += parseFloat(ar[i]['brend'] * ( ar[i]['max'] / cf ));
						b = true;
					}else{
						kf += parseFloat(ar[i]['cach'] * ( ar[i]['col'] / cf ));
						cnf += parseFloat(ar[i]['summ'] * ( ar[i]['col'] / cf ));
						bf += parseFloat(ar[i]['brend'] * ( ar[i]['col'] / cf ));
					}
				}
                cnkf = cnf / kf;
				if(isNaN(kf)){
					kf = 0;
					cnf = 0;
					bf = 0;
					cnkf = 0;
					}
			}
            if(b){
				table.closest('td').css('background-color','#fee');
				var n = 0;
				$('tr', table).each( function() {
					var cels = $('td', this);
					//if(n == 0)	$(cels[1]).append(num(cf, false));
					//if(n == 1)	$(cels[1]).append(kf.toFixed(2)+'<span title="Цена за единицу качества (Ц/К) с учетом запасов">($'+cnkf.toFixed(2)+')</span>');
					//if(n == 2 && t == 0)	$(cels[1]).append(bf.toFixed(2));
					//if(n == 3 && t == 0)	$(cels[1]).append('$'+num(cnf, true));
					//if(n == 2 && t == 1)	$(cels[1]).append('$'+num(cnf, true));
                    switch (n) {
                        case 1:	$(cels[1]).append(kf.toFixed(2)+'<span title="Цена за единицу качества (Ц/К) с учетом запасов">($'+cnkf.toFixed(2)+')</span>');
                        break;
                        case 2:	if(t === 0)	$(cels[1]).append(bf.toFixed(2));
                           else if(t == 1)	$(cels[1]).append('$'+num(cnf, true));
                        break;
                        case 3:	if(t === 0)	$(cels[1]).append('$'+num(cnf, true));
                        break;
                        default:$(cels[1]).append(num(cf, false));
                        break;
                    }
					n++;
				});
			}
		}
		function createtable(ar, i, t){
			if(ar.length>0){
				var cf=0, kf=0, cnf=0, cnkf=0, bf=0;
				for(i=0; i<ar.length; i++){
					cf += parseInt(ar[i]['col']);
				}
				if(cf > 0){
					for(i=0; i<ar.length; i++){
						kf += parseFloat(ar[i]['cach'] * ( ar[i]['col'] / cf ));
						cnf += parseFloat(ar[i]['summ'] * ( ar[i]['col'] / cf ));
						bf += parseFloat(ar[i]['brend'] * ( ar[i]['col'] / cf ));
					}
					if(kf!==0) cnkf = cnf / kf;
					if(isNaN(kf)){
						kf = 0;
						cnf = 0;
						bf = 0;
					    cnkf = 0;
					    }
				}else{
					kf = 0;
					cnf = 0;
					bf = 0;
					cnkf = 0;
					}
				if(t === 0){
					var table = $('<table width="100%" style="margin-top:-17px;margin-bottom:60px;" class="noborder"><tr><td class="zcol" align="right">'+num(cf, false)+'</td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">'+kf.toFixed(2)+'<span title="Цена за единицу качества (Ц/К)">($'+cnkf.toFixed(2)+')</span></td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">'+bf.toFixed(2)+'</td><td align="right" style="color:#f00;"></td></tr><td align="right">$'+num(cnf, true)+'</td><td align="right" style="color:#f00;"></td></tr></table>');
				//	var table = $('<table width="100%" style="margin-top:-17px" class="noborder"><tr><td class="zcol" align="right">'+cf.toFixed(0)+'</td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">'+kf.toFixed(2)+'('+cnkf.toFixed(2)+')</td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">'+bf.toFixed(2)+'</td><td align="right" style="color:#f00;"></td></tr><td align="right">$'+cnf.toFixed(2)+'</td><td align="right" style="color:#f00;"></td></tr></table>');
                    }
				if(t == 1) var table = $('<table cellpadding="0" cellspacing="0" width="100%" class="noborder"><tr><td align="right">'+num(cf, false)+'</td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">'+kf.toFixed(2)+'<span title="Цена за единицу качества (Ц/К)">($'+cnkf.toFixed(2)+')</span></td><td align="right" style="color:#f00;"></td></tr><td align="right">$'+num(cnf, true)+'</td><td align="right" style="color:#f00;"></td></tr></table>');
                //if(t == 1) var table = $('<table cellpadding="0" cellspacing="0" width="100%" class="noborder"><tr><td align="right">'+cf.toFixed(0)+'</td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">'+kf.toFixed(2)+'('+cnkf.toFixed(2)+')</td><td align="right" style="color:#f00;"></td></tr><td align="right">$'+cnf.toFixed(2)+'</td><td align="right" style="color:#f00;"></td></tr></table>');
                $(cel).html('').append(table).css('background-color','#efe');
				addtablemax(ar, table, t);
				return 0;
			}
			return i;
		}
		function updatetable(n){
			var ar = [], i=0, j=0;
			$(".list tr").each( function() {
				if($(this).hasClass('sub_row') || $(this).hasClass('product_row')){
					var cels = $('td', this),
						c = 0,
						k = 0,
						cn = 0,
						br = 0,
						sv = 0,
						max = 0,
						ck = 0;
					var but_1 = $('<input type="button" rel="'+j+'" value="+1п" />').unbind('click').click(function() { add($(this).attr('rel'),1,txt); });
					var but_2 = $('<input type="button" rel="'+j+'" value="+2п" />').unbind('click').click(function() { add($(this).attr('rel'),2,txt); });
					if($(this).hasClass('sub_row')){

						c = parseInt($('input', cels[1]).val().replace(/ /g, ''));
						cn = parseFloat($(cels[6]).text().replace('$', '').replace(/ /g, ''));
						k = parseFloat($(cels[8]).text().replace(/ /g, ''));
						br = parseFloat($(cels[10]).text().replace(/ /g, ''));
						sv = parseInt($(cels[17]).text().replace(/ /g, ''));
						max = parseInt($('span', cels[1]).text().replace('Max: ', '').replace(/ /g, ''));
					    if(k!==0) ck = cn / k;
                        if(isNaN(k)) ck = 0;
						if(n===0){
							$(cels[3]).append('<span style="display:block;color:#f00;">$<span title="Цена за единицу качества (Ц/К)">'+ck.toFixed(2)+'</span></span>');
							$(cels[0]).prepend('<br />').prepend(but_2).prepend(but_1);
							$(cels[1]).prepend('<div class="divtemp" id="divtemp'+j+'" style="color:green"></div>');
                        }
                        $(cels[17]).unbind('click').click(function(){
                            var name = $(this).parent().parent().parent().parent().parent().attr('id').substr(16).split('-');
                            //alert (name[0]);
                            if(isNaN(max)) max = sv;
					        if(sv < max) max = sv;
                            $('input', cels[1]).val(max);
                            updatetable2(8, name[0]);
                            });
                            $(cels[16]).unbind('click').click(function(){
                            var name = $(this).parent().parent().parent().parent().parent().attr('id').substr(16).split('-');
                            if(isNaN(max)) max = sv;
					        if(sv < max) max = sv;
                            $('input', cels[1]).val(max);
                            updatetable2(8, name[0]);
                            });
                        $('span', cels[1]).unbind('click').click(function(){
                            var name = $(this).parent().parent().attr('id').substr(16).split('-');
                            //alert (name[0]);
                            if(isNaN(max)) max = sv;
					        if(sv < max) max = sv;
                            $('input', cels[1]).val(max);
                            updatetable2(8, name[0]);
                            });
                        k = nullpr(k);
						br = nullpr(br);
                    }
					if($(this).hasClass('product_row')){
						i = createtable(ar, i, 0);
						ar = [];
						cel = cels[14];
						c = parseInt($('input', cels[n+17]).val().replace(/ /g, ''));
						cn = parseFloat($(cels[n+22]).text().replace('$', '').replace(/ /g, ''));
						k = parseFloat($(cels[n+24]).text().replace(/ /g, ''));
						br = parseFloat($(cels[n+26]).text().replace(/ /g, ''));
						sv = parseInt($(cels[n+33]).text().replace(/ /g, ''));
						max = parseInt($('span', cels[n+17]).text().replace('Max: ', '').replace(/ /g, ''));
					    if(k!==0) ck = cn / k;
                        if(isNaN(k)) ck = 0;
						if(n===0){
							$(cels[19]).append('<span style="display:block;color:#f00;"><span title="Цена за единицу качества (Ц/К)">$'+ck.toFixed(2)+'</span></span>');
					        $(cels[16]).prepend('<br />').prepend(but_2).prepend(but_1);
							$(cels[17]).prepend('<div class="divtemp" id="divtemp'+j+'" style="color:green"></div>');
						}
                        $(cels[n+33]).unbind('click').click(function(){
                            var name = $(this).parent().parent().parent().parent().parent().attr('id').substr(12).split('-');
                            if(isNaN(max)) max = sv;
					        if(sv < max) max = sv;
                            $('input', cels[n+17]).val(max);
                            updatetable2(8, name[0]);
                            });
                        $(cels[n+32]).unbind('click').click(function(){
                            var name = $(this).parent().parent().parent().parent().parent().attr('id').substr(12).split('-');
                            if(isNaN(max)) max = sv;
					        if(sv < max) max = sv;
                            $('input', cels[n+17]).val(max);
                            updatetable2(8, name[0]);
                            });
                        $('span', cels[n+17]).unbind('click').click(function(){
                            var name = $(this).parent().parent().attr('id').substr(16).split('-');
                            if(isNaN(max)) max = sv;
					        if(sv < max) max = sv;
                            $('input', cels[n+17]).val(max);
                            updatetable2(8, name[0]);
                            });
						k = nullpr(k);
						br = nullpr(br);
					}
					if(isNaN(max)) max = sv;
					if(sv < max) max = sv;
                    if(isNaN(c)) c = 0;
					ar[i] = new addar(c, cn, k, br, max);
					i++;
					if(n === 0){
						$(this).attr('ids',j);
						txt[j] = new fillArray( cn, k, max );
						j++;
					}
				}

				if(!$(this).hasClass('sub_row') || !$(this).hasClass('product_row') && i > 0){
					createtable(ar, i, 0);
				}
			});
		}
		function updatetable2(n, name){
			var ar = [], i=0, j=0;
			$('.list tr[id*="'+name+'"]').each( function() {
				if($(this).hasClass('sub_row') || $(this).hasClass('product_row')){
					var cels = $('td', this),
						c = 0,
						k = 0,
						cn = 0,
						br = 0,
						sv = 0,
						max = 0,
						ck = 0;
					var but_1 = $('<input type="button" rel="'+j+'" value="+1п" />').unbind('click').click(function() { add($(this).attr('rel'),1,txt); });
					var but_2 = $('<input type="button" rel="'+j+'" value="+2п" />').unbind('click').click(function() { add($(this).attr('rel'),2,txt); });
					if($(this).hasClass('sub_row')){

						c = parseInt($('input', cels[1]).val().replace(/ /g, ''));
						cn = parseFloat($(cels[6]).text().replace('$', '').replace(/ /g, ''));
						k = parseFloat($(cels[8]).text().replace(/ /g, ''));
						br = parseFloat($(cels[10]).text().replace(/ /g, ''));
						sv = parseInt($(cels[17]).text().replace(/ /g, ''));
						max = parseInt($('span', cels[1]).text().replace('Max: ', '').replace(/ /g, ''));
					    if(k!==0) ck = cn / k;
                        if(isNaN(k)) ck = 0;
						//if(n===0){
						//	$(cels[3]).append('<span style="display:block;color:#f00;">$<span title="Цена за единицу качества (Ц/К)">'+ck.toFixed(2)+'</span></span>');
						//	$(cels[0]).prepend('<br />').prepend(but_2).prepend(but_1);
						//	$(cels[1]).prepend('<div class="divtemp" id="divtemp'+j+'" style="color:green"></div>');
                        //}
                        k = nullpr(k);
						br = nullpr(br);
                    }
					if($(this).hasClass('product_row')){
						i = createtable(ar, i, 0);
						ar = [];
						cel = cels[14];
						c = parseInt($('input', cels[n+17]).val().replace(/ /g, ''));
						cn = parseFloat($(cels[n+22]).text().replace('$', '').replace(/ /g, ''));
						k = parseFloat($(cels[n+24]).text().replace(/ /g, ''));
						br = parseFloat($(cels[n+26]).text().replace(/ /g, ''));
						sv = parseInt($(cels[n+33]).text().replace(/ /g, ''));
						max = parseInt($('span', cels[n+17]).text().replace('Max: ', '').replace(/ /g, ''));
					    if(k!==0) ck = cn / k;
                        if(isNaN(k)) ck = 0;
						//if(n===0){
						//	$(cels[19]).append('<span style="display:block;color:#f00;"><span title="Цена за единицу качества (Ц/К)">$'+ck.toFixed(2)+'</span></span>');
					    //    $(cels[16]).prepend('<br />').prepend(but_2).prepend(but_1);
						//	$(cels[17]).prepend('<div class="divtemp" id="divtemp'+j+'" style="color:green"></div>');
						//}
						k = nullpr(k);
						br = nullpr(br);
					}
					if(isNaN(max)) max = sv;
					if(sv < max) max = sv;
                    if(isNaN(c)) c = 0;
					ar[i] = new addar(c, cn, k, br, max);
					i++;
					//if(n === 0){
					//	$(this).attr('ids',j);
					//	txt[j] = new fillArray( cn, k, max );
					//	j++;
					//}
				}

				if(!$(this).hasClass('sub_row') || !$(this).hasClass('product_row') && i > 0){
					createtable(ar, i, 0);
				}
			});
		}
        function statusz(x,help){
			var x1 = x;
			var color = '#86EF75';
			if(x > 100){
				x1 = 100;
				color = '#F47981';
			}
			if(x < 0){
				x1 = 0;
			}
			var s = '<div title="'+help+'" style="margin-top:3px;border:solid 1px gray;height:15px;"><div style="background-color:'+color+';width:'+x1.toFixed(2)+'%;height:15px;"><span style="position:absolute;margin-left:10px;">'+x.toFixed(2)+'%</span></div></div>';
			return s;
		}
		function scladr(){
			var prc = 0;
			var prc1 = 0;
			var prc2 = 0;
			$(".list tr").each( function() {
				var cels = $('td', this);
				if($(this).hasClass('product_row')){
					var cel1 = cels[3];
					$('.scl',cel1).remove();
					$('.scl1',cel1).remove();
					$('.scl2',cel1).remove();
					$(cel1).append('<div class="scl"></div>').append('<div class="scl1"></div>').append('<div class="scl2"></div>');
					var col = parseInt($('table td:contains(Количество)',cel1).next().text().replace(/ /g,''));
					var index = parseInt($(cel1).closest('tr').attr('id').replace(/product_row_/g,'').replace(/-([0-9]+)/g,''));
					//var scl1 = (col * 100 / scl[index]) * 1000 / $('.list .allsclad select').val();
					var scl1 = (col * 100 * $('.allsclad select').val()) / scl[index];
					$('.scl',cel1).html(statusz(scl1,'В данный момент на складе.'));
					prc += scl1;

					var colprod = parseInt($('table td:contains(Продано)',cel1).next().text().replace(/ /g,''));
					var colzac = parseInt($('.zcol',$(cel1).next()).text().replace(/ /g,''));

					//var scl2 = ((colzac + col) * 100 / scl[index]) * 1000 / $('.list .allsclad select').val();
					var scl2 = ((colzac + col) * 100 * $('.allsclad select').val()) / scl[index];
					$('.scl1',cel1).html(statusz(scl2,'После закупки без продаж.'));
					prc1 += scl2;
					//var scl3 = ((colzac + col - colprod) * 100 / scl[index]) * 1000 / $('.list .allsclad select').val();
					var scl3 = ((colzac + col - colprod) * 100 * $('.allsclad select').val()) / scl[index];
					$('.scl2',cel1).html(statusz(scl3,'После закупки с такими же продажами.'));
					prc2 += scl3;
				}
			});
			if(prc > 0 || prc1 > 0 || prc2 > 0){
				$('.allsclad .cc').html(statusz(prc,'В данный момент на складе.')+statusz(prc1,'После закупки без продаж.')+statusz(prc2,'После закупки с такими же продажами.'));
			}
		}
		$('#menutop li ul').width(1100);
		$('#wrapper').width(1100);
		var i = 0;
		$(".list tr").each( function() {
			var cels = $('td', this);
			if(i === 0 && $(cels[0]).hasClass('title')){
				$(this).before('<tr><td></td><td class="allsclad"><label>Размер склада<select><option value="1050">100</option><option value="210">500</option><option selected value="105">1000</option><option value="10.5">10000</option><option value="1.05">100000</option></select></label> <a href="#">?</a></div><div class="cc"></div></td><td colspan="9"><div class="helpsn" style="display:none;">Расчет заполняемости склада идет только по товару находящимуся на данной страннице снабжения. (Если на складе присутствует товар по которому в данный момент нет поставщика, то данный товар не считается)</div></td></tr>');
				i++;
			}
		});

		$('.allsclad a').unbind('click').click(function(){
			if($('.helpsn').is(':visible'))
				$('.helpsn').hide();
			else
				$('.helpsn').show();
			return false;
		});

		$('input[name*=party_quantity]').unbind('keyup').keyup(function(){
            if ($(this).parent().parent().attr('id').substr(8,3)=="sub")
                var name = $(this).parent().parent().attr('id').substr(16).split('-');
            else if ($(this).parent().parent().attr('id').substr(8,3)=="row")
                var name = $(this).parent().parent().attr('id').substr(12).split('-');
			updatetable2(8, name[0]);
			scladr();
		});

		$('.allsclad select').change(function(){
			updatetable(8);
			scladr();
		});

		updatetable(0);
		scladr();

		var but_ras = $('<input type="button" value="Расчет" />').unbind('click').click(function() { Calculate1(0); });
	}

	if(title.search('img/v2/units/animalfarm')!=-1 || title.search('img/v2/units/workshop')!=-1 || title.search('img/v2/units/power')!=-1 || title.search('img/v2/units/mill')!=-1 || title.search('img/v2/units/repair')!=-1 || title.search('img/v2/units/restaurant')!=-1 || title.search('img/v2/units/medicine')!=-1){
		form = true;

		function addtablemax(ar, table, t){
			var cf=0, kf=0, cnf=0, cnkf=0, bf=0, b=false;
			for(i=0; i<ar.length; i++){
                if(ar[i]['col'] > ar[i]['max']){
					cf += parseInt(ar[i]['max']);
                    if(ar[i]['col']>0) b = true;}
                else
					cf += parseInt(ar[i]['col']);
			}
			if(cf !== 0){
				for(i=0; i<ar.length; i++){
					if(ar[i]['col'] > ar[i]['max']){
						kf += parseFloat(ar[i]['cach'] * ( ar[i]['max'] / cf ));
						cnf += parseFloat(ar[i]['summ'] * ( ar[i]['max'] / cf ));
						bf += parseFloat(ar[i]['brend'] * ( ar[i]['max'] / cf ));
						b = true;
					}else{
						kf += parseFloat(ar[i]['cach'] * ( ar[i]['col'] / cf ));
						cnf += parseFloat(ar[i]['summ'] * ( ar[i]['col'] / cf ));
						bf += parseFloat(ar[i]['brend'] * ( ar[i]['col'] / cf ));
					}
				}
                cnkf = cnf / kf;
				if(isNaN(kf)){
					kf = 0;
					cnf = 0;
					bf = 0;
					cnkf = 0;
					}
			}
            if(b){
				table.closest('td').css('background-color','#fee');
				var n = 0;
				$('tr', table).each( function() {
					var cels = $('td', this);
					//if(n == 0)	$(cels[1]).append(num(cf, false));
					//if(n == 1)	$(cels[1]).append(kf.toFixed(2)+'<span title="Цена за единицу качества (Ц/К) с учетом запасов">($'+cnkf.toFixed(2)+')</span>');
					//if(n == 2 && t == 0)	$(cels[1]).append(bf.toFixed(2));
					//if(n == 3 && t == 0)	$(cels[1]).append('$'+num(cnf, true));
					//if(n == 2 && t == 1)	$(cels[1]).append('$'+num(cnf, true));
                    switch (n) {
                        case 1:	$(cels[1]).append(kf.toFixed(2)+'<span title="Цена за единицу качества (Ц/К) с учетом запасов">($'+cnkf.toFixed(2)+')</span>');
                        break;
                        case 2:	if(t === 0)	$(cels[1]).append(bf.toFixed(2));
                           else if(t == 1)	$(cels[1]).append('$'+num(cnf, true));
                        break;
                        case 3:	if(t === 0)	$(cels[1]).append('$'+num(cnf, true));
                        break;
                        default:$(cels[1]).append(num(cf, false));
                        break;
                    }
					n++;
				});
			}
		}
		function createtable(ar, i, t){
			if(ar.length>0){
				var cf=0, kf=0, cnf=0, cnkf=0, bf=0;
				for(i=0; i<ar.length; i++){
					cf += parseInt(ar[i]['col']);
				}
				if(cf > 0){
					for(i=0; i<ar.length; i++){
						kf += parseFloat(ar[i]['cach'] * ( ar[i]['col'] / cf ));
						cnf += parseFloat(ar[i]['summ'] * ( ar[i]['col'] / cf ));
						bf += parseFloat(ar[i]['brend'] * ( ar[i]['col'] / cf ));
					}
					if(kf!==0) cnkf = cnf / kf;
					if(isNaN(kf)){
						kf = 0;
						cnf = 0;
						bf = 0;
					    cnkf = 0;
					    }
				}else{
					kf = 0;
					cnf = 0;
					bf = 0;
					cnkf = 0;
					}
				if(t === 0){
					var table = $('<table width="100%" style="margin-top:-17px;margin-bottom:60px;" class="noborder"><tr><td class="zcol" align="right">'+num(cf, false)+'</td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">'+kf.toFixed(2)+'<span title="Цена за единицу качества (Ц/К)">($'+cnkf.toFixed(2)+')</span></td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">'+bf.toFixed(2)+'</td><td align="right" style="color:#f00;"></td></tr><td align="right">$'+num(cnf, true)+'</td><td align="right" style="color:#f00;"></td></tr></table>');
				//	var table = $('<table width="100%" style="margin-top:-17px" class="noborder"><tr><td class="zcol" align="right">'+cf.toFixed(0)+'</td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">'+kf.toFixed(2)+'('+cnkf.toFixed(2)+')</td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">'+bf.toFixed(2)+'</td><td align="right" style="color:#f00;"></td></tr><td align="right">$'+cnf.toFixed(2)+'</td><td align="right" style="color:#f00;"></td></tr></table>');
                    }
				if(t == 1) var table = $('<table cellpadding="0" cellspacing="0" width="100%" class="noborder"><tr><td align="right">'+num(cf, false)+'</td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">'+kf.toFixed(2)+'<span title="Цена за единицу качества (Ц/К)">($'+cnkf.toFixed(2)+')</span></td><td align="right" style="color:#f00;"></td></tr><td align="right">$'+num(cnf, true)+'</td><td align="right" style="color:#f00;"></td></tr></table>');
                //if(t == 1) var table = $('<table cellpadding="0" cellspacing="0" width="100%" class="noborder"><tr><td align="right">'+cf.toFixed(0)+'</td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">'+kf.toFixed(2)+'('+cnkf.toFixed(2)+')</td><td align="right" style="color:#f00;"></td></tr><td align="right">$'+cnf.toFixed(2)+'</td><td align="right" style="color:#f00;"></td></tr></table>');
                $(cel).html('').append(table).css('background-color','#efe');
				addtablemax(ar, table, t);
				return 0;
			}
			return i;
		}
		function newtype(id, title, subrow){
			this.id = id;
			this.title = title;
			this.subrow = subrow;
		}
		function addarr(item,n,id){
			var ar = [],c = 0,k = 0,cn = 0,br = 0,sv = 0,max = 0;
			$(item).each( function() {
				var cels = $('td', this);
					c = parseInt($('input', cels[18+n]).val().replace(/ /g, ''));
					k = parseFloat($(cels[28+n]).text().replace(/ /g, ''));
					cn = parseFloat($(cels[23+n]).text().replace('$', '').replace(/ /g, ''));
					br = 0;
					sv = parseInt($(cels[36+n]).text().replace(/ /g, ''));
					max = parseInt($('span', cels[18+n]).text().replace('Max: ', '').replace(/ /g, ''));
					k = nullpr(k);
                $(cels[36+n]).unbind('click').click(function(){
                    if(isNaN(max)) max = sv;
				    if(sv < max) max = sv;
                    $('input', cels[18+n]).val(max);
                    updatetablepr(7);
                    });
                $(cels[35+n]).unbind('click').click(function(){
                    if(isNaN(max)) max = sv;
				    if(sv < max) max = sv;
                    $('input', cels[18+n]).val(max);
                    updatetablepr(7);
                    });
                $('span', cels[18+n]).unbind('click').click(function(){
                    if(isNaN(max)) max = sv;
				    if(sv < max) max = sv;
                    $('input', cels[18+n]).val(max);
                    updatetablepr(7);
                    });
			});
			if(isNaN(max)) max = sv;
			if(sv < max) max = sv;
            if(isNaN(c)) c = 0;
			ar = new addar(c, cn, k, br, max);
			return ar;
		}
		var type=[], i=0, k=0;
		$('.list th:contains(Поставки)').before('<th rowspan="2">Заказ</th>');
		function updatetablepr(m){
			for(var item in gaMaterialProduct) {
				var t = $('#product_row_'+item+' th [rowspan=2] img').attr('alt'),
					subrow = gaMaterialProduct[item]['subRowCount'],
					ar = [],
					n = 0;
				type[i] = new newtype(item,t,subrow);
				i++;

				ar[n] = addarr('#product_row_'+item,m,k);
				n++;

				if(m === 0){
					var kk = 0,cn = 0,ck = 0;
					$('#product_row_'+item).each( function() {
				    var cels = $('td', this);
					kk = parseFloat($(cels[28+m]).text().replace(/ /g, ''));
					cn = parseFloat($(cels[23+m]).text().replace('$', '').replace(/ /g, ''));
					if(kk!==0) ck = cn /kk;
                    if(isNaN(kk)) ck = 0;
					$('#product_row_'+item+' #name_'+item+'_0').next().next().append('<span style="display:block;color:#f00;"><span title="Цена за единицу качества (Ц/К)">$'+ck.toFixed(2)+'</span></span>');
                    var but_1 = $('<input type="button" rel="'+k+'" value="+1п" />').unbind('click').click(function() { add($(this).attr('rel'),1,txt); });
					var but_2 = $('<input type="button" rel="'+k+'" value="+2п" />').unbind('click').click(function() { add($(this).attr('rel'),2,txt); });
					$('#product_row_'+item+' #name_'+item+'_0').prepend('<br />').prepend(but_2).prepend(but_1);
					$('#product_row_'+item+' #name_'+item+'_0').next().prepend('<div class="divtemp" id="divtemp'+k+'" style="color:green"></div>');
                    });}
				txt[k] = addarr('#product_row_'+item,m,k);
				k++;

                for(j=1; j<subrow; j++){
					ar[n] = addarr('#product_sub_row_'+item+'_'+j,-17,k);
					n++;
					if(m === 0){
						var kk = 0,cn = 0,ck = 0;
						$('#product_sub_row_'+item+'_'+j).each( function() {
				    	var cels = $('td', this);
						kk = parseFloat($(cels[11+m]).text().replace(/ /g, ''));
                    	cn = parseFloat($(cels[6+m]).text().replace('$', '').replace(/ /g, ''));
						if(kk!==0) ck = cn /kk;
                        if(isNaN(kk)) ck = 0;
						$('#product_sub_row_'+item+'_'+j+' #name_'+item+'_'+j).next().next().append('<span style="display:block;color:#f00;"><span title="Цена за единицу качества (Ц/К)">$'+ck.toFixed(2)+'</span></span>');
                        but_1 = $('<input type="button" rel="'+k+'" value="+1п" />').unbind('click').click(function() { add($(this).attr('rel'),1,txt); });
						but_2 = $('<input type="button" rel="'+k+'" value="+2п" />').unbind('click').click(function() { add($(this).attr('rel'),2,txt); });
						$('#product_sub_row_'+item+'_'+j+' #name_'+item+'_'+j).prepend('<br />').prepend(but_2).prepend(but_1);
						$('#product_sub_row_'+item+'_'+j+' #name_'+item+'_'+j).next().prepend('<div class="divtemp" id="divtemp'+k+'" style="color:green"></div>');
                    });}
					txt[k] = addarr('#product_sub_row_'+item+'_'+j,-17,k);
					k++;
				}

				if( m>0 )
					$('#product_row_'+item+' #name_'+item+'_0').prev().remove();

				var cel = $('<td width="100" class="temp'+item+'" rowspan="'+subrow+'"></td>');
				$('#product_row_'+item+' #name_'+item+'_0').before(cel);

				if(ar.length>0){
					var cf=0, kf=0, cnf=0, cnkf=0;
					for(j=0; j<ar.length; j++){
						cf += parseInt(ar[j]['col']);
					}
					if(cf > 0){
						for(j=0; j<ar.length; j++){
							kf += parseFloat(ar[j]['cach'] * ( ar[j]['col'] / cf ));
							cnf += parseFloat(ar[j]['summ'] * ( ar[j]['col'] / cf ));
						}
					    if(kf!==0) cnkf = cnf / kf;
						if(isNaN(kf)){
							kf = 0;
							cnf = 0;
					        cnkf = 0;
						}
					}else{
						kf = 0;
						cnf = 0;
					    cnkf = 0;
					    b = true;
					}
					var table = $('<table cellpadding="0" cellspacing="0" width="100%" class="noborder"><tr><td style="word-wrap:normal" align="right">'+num(cf, false)+'</td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">'+kf.toFixed(2)+'<span title="Цена за единицу качества (Ц/К)">($'+cnkf.toFixed(2)+')</span></td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">$'+num(cnf, true)+'</td><td align="right" style="color:#f00;"></td></tr></table>');
					$(cel).html('').append(table).css('background-color','#efe');
					addtablemax(ar, table, 1);
				}
				$('temp'+item).remove();
				$('#product_row_'+item+' #name_'+item+'_0').before(cel);
			}
		}
		updatetablepr(0);
		$('input[name*=supplyContractData]').unbind('keyup').keyup(function(){
			updatetablepr(7);
		});
		var but_ras = $('<input type="button" value="Расчет" />').unbind('click').click(function() { Calculate1(1); });
	}

	if(title.search('img/v2/units/warehouse')!=-1){
		//var nasklade = [];

		function sortzak(){
			var i = 0, j = 0, n = 0;
			for(n = 0; n < txt1.length; n++){
				var ar1 = [], ar2 = [];
				for(i = 0; i < txt1[n].length; i++){
					if(txt1[n][i].sc > txt1[n][i].cach){
						ar1.push(txt1[n][i]);
					}else{
						ar2.push(txt1[n][i]);
					}
				}
				ar1.sort(function(obj1, obj2) {
					return obj2.ck - obj1.ck;
				});
				ar2.sort(function(obj1, obj2) {
					return obj1.ck - obj2.ck;
				});
				txt1[n] = [];
				txt1[n] = txt1[n].concat(ar1,ar2);
				var div = $('<div>');
				for(i = txt1[n].length-1; i >= 0; i--){
					//console.log(i);
					$('.'+txt1[n][i].name).after($('.'+txt1[n][i].name+txt1[n][i].id));
					//$('.'+txt1[n][i].name+txt1[n][i].id).hide()
				}
			}
		}
		function randWD(n){  // [ 2 ] random words and digits
			return Math.random().toString(36).slice(2, 2 + Math.max(1, Math.min(n, 10)) );
		}
		function ssred (cel,ar,t) {
			var cf=0, kf=0, cnf=0, cnkf=0, b = false;
			for(i=0; i<ar.length; i++){
				if(ar[i]['col'] <= ar[i]['max'] || t)
                    cf += parseInt(ar[i]['col']);
                else {
                    cf += parseInt(ar[i]['max']);
                    if(ar[i]['col']>0) b = true;}
			}
			if(cf > 0){
				for(i=0; i<ar.length; i++){
					if(ar[i]['col'] <= ar[i]['max'] || t){
						kf += parseFloat(ar[i]['cach'] * ( ar[i]['col'] / cf ));
						cnf += parseFloat(ar[i]['summ'] * ( ar[i]['col'] / cf ));
					}else{
						kf += parseFloat(ar[i]['cach'] * ( ar[i]['max'] / cf ));
						cnf += parseFloat(ar[i]['summ'] * ( ar[i]['max'] / cf ));
						b = true;
					}
				}
				if(kf !== 0) cnkf = cnf / kf;
				if(isNaN(kf)){
					kf = 0;
					cnf = 0;
					cnkf = 0;
				}
			} else {
				kf = 0;
				cnf = 0;
				cnkf = 0;
				}
			if(t) {
				$('.cf',cel).text(num(cf, false)).unbind('click').click(function(){$('#sc').val(cf); $('#sk').val(kf.toFixed(2));});//updatetablesk(false,falsee);});
				$('.cnf',cel).text('$'+num(cnf, true));
				$('.kf',cel).text(kf.toFixed(2)+'($'+cnkf.toFixed(2)+')');
				$(cel).css('background-color','#efe');
				if(cf!==0) ssred(cel,ar,false);
			}
			if(b) {
				$(cel).css('background-color','#fee');
				$('.cf',cel).append('<div style="color:#f00;">'+num(cf, false)+'</div>').unbind('click').click(function(){$('#sc').val(cf); $('#sk').val(kf.toFixed(2));});//updatetablesk(false,true);});
				$('.cnf',cel).append('<div style="color:#f00">$'+num(cnf, true)+'</div>');
				$('.kf',cel).append('<div style="color:#f00">'+kf.toFixed(2)+'($'+cnkf.toFixed(2)+')</div>');
			}
		}

		function ssredupd (cel,ar,t) {
			var cf=0, kf=0, cnf=0, cnkf=0, b = false;
			for(i=0; i<ar.length; i++){
				if(ar[i]['col'] <= ar[i]['max'] || t)
                    cf += parseInt(ar[i]['col']);
                else {
                    cf += parseInt(ar[i]['max']);
                    if(ar[i]['col']>0) b = true;}
			}
			if(cf > 0){
				for(i=0; i<ar.length; i++){
					if(ar[i]['col'] <= ar[i]['max'] || t){
						kf += parseFloat(ar[i]['cach'] * ( ar[i]['col'] / cf ));
						cnf += parseFloat(ar[i]['summ'] * ( ar[i]['col'] / cf ));
					}else{
						kf += parseFloat(ar[i]['cach'] * ( ar[i]['max'] / cf ));
						cnf += parseFloat(ar[i]['summ'] * ( ar[i]['max'] / cf ));
						b = true;
					}
				}
				if(kf !== 0) cnkf = cnf / kf;
				if(isNaN(kf)){
					kf = 0;
					cnf = 0;
					cnkf = 0;
				}
			}else{
				kf = 0;
				cnf = 0;
				cnkf = 0;
				}
			if(t){
				$('.cf',cel).text(num(cf, false)).unbind('click').click(function(){$('#sc').val(cf); $('#sk').val(kf.toFixed(2));});//updatetablesk(false,falsee);});
				$('.cnf',cel).text('$'+num(cnf, true));
				$('.kf',cel).text(kf.toFixed(2)+'($'+cnkf.toFixed(2)+')');
				$(cel).css('background-color','#efe');
				if(cf!==0) ssredupd(cel,ar,false);
			}
			if(b){
				$(cel).css('background-color','#fee');
				$('.cf',cel).append('<div style="color:#f00;">'+num(cf, false)+'</div>').unbind('click').click(function(){$('#sc').val(cf); $('#sk').val(kf.toFixed(2));});//updatetablesk(false,true);});
				$('.cnf',cel).append('<div style="color:#f00">$'+num(cnf, true)+'</div>');
				$('.kf',cel).append('<div style="color:#f00">'+kf.toFixed(2)+'($'+cnkf.toFixed(2)+')</div>');
			}
		}


		//$('table.list tr').each( function() {
		//var cels = $('td',this);
        //var name = '';
		//if($(this).hasClass('p_title')){
        //$(this,'p_title').each( function() {
        //if($(this).hasClass('p_title')){
        //name = 'q'+randWD(3);
		//$(this).addClass(name)}});

   function createtablesk (t, sort) {
			var sort = sort || false;
			var ar = [], cel, n=0;
			var txt2 = [];
			var name = '';
			j = 0;
			form = true;
			$('table.list tr').each( function() {
				var cels = $('td',this);
                if($(this).hasClass('p_title')) {
   					name = 'q'+randWD(3);
					$(this).addClass(name);
					if(t) {
						ko[j] = parseFloat($(cels[4]).text());
						var skach = $('<input>', {'type':'text', 'class':'skach','style':'display:block;','ids':j}).val(ko[j]).unbind('keyup').keyup(function(){
                        	createtablesk(false, true);
						});
						$('.p_title_l', this).prepend(skach);

						if($('.p_title_l div table',$(this)).html().length < 25){
                            var cn = parseFloat($(cels[3]).text().replace(/\s+/g, '').replace(/\$/g, '')),
                                k = parseFloat($(cels[5]).text().replace(/ /g, '')),
                                cf = parseInt($(cels[1]).text().replace(/ /g, '')),
                                naskl = parseInt($('.'+name+' div table tr td:contains("На складе:")').next().text().replace(/ /g, '')),
                                nasklpp = parseInt($('.'+name+' div table tr td:contains("Отгрузки")').next().text().replace(/ /g, '')),
                                cnk = 0;
                            cnk = cn / k;
							if(isNaN(cnk)) cnk=0;
							if (cf>0 || (!isNaN(naskl) && !isNaN(nasklpp) && (naskl > nasklpp)))
                            $('.p_title_l div table',$(this))
        							.after('<tr><td>Качество/Себестоимость:</td><td><strong style="display:block;" class="ccf1"></strong></td></tr>')
        							.after('<tr><td>На складе:</td><td><strong style="display:block;" class="ccf"></strong></td></tr>')
        							.after('<tr><td colspan="2"><strong>После пересчета</strong></td></tr>');
                            if(cf>0&&k>0) $(cels[1]).append('<strong style="display:block" class="cf"></strong>');
                            else $(cels[1]).html('').append('<strong style="display:block" class="cf"></strong>');
							$(cels[3]).append('<strong style="display:block" class="cnf"></strong>');
                            if(cnk!==0) $(cels[5]).html('<b>'+parseFloat($(cels[5]).text()).toFixed(2)+'</b>').append('<b>($'+cnk.toFixed(2)+')</b><strong style="display:block" class="kf"></strong>');
                            else $(cels[5]).append('<strong style="display:block" class="kf"></strong>');
						}else{
						    if($('.p_title_l div table',$(this)).html().length < 128){
                            var cn = parseFloat($(cels[5]).text().replace(/\s+/g, '').replace(/\$/g, '')),
                                k = parseFloat($(cels[7]).text().replace(/ /g, '')),
								cf = parseInt($(cels[3]).text().replace(/ /g, '')),
                                naskl = parseInt($('.'+name+' div table tr td:contains("На складе:")').next().text().replace(/ /g, '')),
                                nasklpp = parseInt($('.'+name+' div table tr td:contains("Отгрузки")').next().text().replace(/ /g, '')),
                                cnk = 0;
                            cnk = cn / k;
					        if(isNaN(cnk)) cnk=0;
                            if (cf>0 || (!isNaN(naskl) && !isNaN(nasklpp) && (naskl > nasklpp)))
                            $('.p_title_l div table',$(this))
        						    .append('<tr><td colspan="2"><strong>После пересчета</strong></td></tr>')
                                    .append('<tr><td>На складе:</td><td><strong style="display:block;" class="ccf"></strong></td></tr>')
                                    .append('<tr><td>Качество/Себестоимость:</td><td><strong style="display:block;" class="ccf1"></strong></td></tr>');
                            if(cf>0&&k>0) $(cels[3]).append('<strong style="display:block" class="cf"></strong>');
                            else $(cels[3]).html('').append('<strong style="display:block" class="cf"></strong>');
							$(cels[5]).append('<strong style="display:block" class="cnf"></strong>');
                            if(cnk!==0) $(cels[7]).html('<b>'+parseFloat($(cels[7]).text()).toFixed(2)+'</b>').append('<b>($'+cnk.toFixed(2)+')</b><strong style="display:block" class="kf"></strong>');
                            else $(cels[7]).append('<strong style="display:block" class="kf"></strong>');
                            }else{
       						    if($('.p_title_l div table',$(this)).html().length < 250){
					            var cn = parseFloat($(cels[7]).text().replace(/\s+/g, '').replace(/\$/g, '')),
                                k = parseFloat($(cels[9]).text().replace(/ /g, '')),
								cf = parseInt($(cels[5]).text().replace(/ /g, '')),
                                naskl = parseInt($('.'+name+' div table tr td:contains("На складе:")').next().text().replace(/ /g, '')),
                                nasklpp = parseInt($('.'+name+' div table tr td:contains("Отгрузки")').next().text().replace(/ /g, '')),
                                cnk = 0;
                                cnk = cn / k;
					 			if(isNaN(cnk)) cnk=0;
                                if (cf>0 || (!isNaN(naskl) && !isNaN(nasklpp) && (naskl > nasklpp)))
                                $('.p_title_l div table',$(this))
        							.after('<tr><td>Качество/Себестоимость:</td><td><strong style="display:block;" class="ccf1"></strong></td></tr>')
        							.after('<tr><td>На складе:</td><td><strong style="display:block;" class="ccf"></strong></td></tr>')
        							.after('<tr><td colspan="2"><strong>После пересчета</strong></td></tr>');
                                if(cf>0&&k>0) $(cels[5]).append('<strong style="display:block" class="cf"></strong>');
                                else $(cels[5]).html('').append('<strong style="display:block" class="cf"></strong>');
							    $(cels[7]).append('<strong style="display:block" class="cnf"></strong>');
                                if(cnk!==0) $(cels[9]).html('<b>'+parseFloat($(cels[9]).text()).toFixed(2)+'</b>').append('<b>($'+cnk.toFixed(2)+')</b><strong style="display:block" class="kf"></strong>');
                                else $(cels[9]).append('<strong style="display:block" class="kf"></strong>');
                                }else{
                                    var cn = parseFloat($(cels[9]).text().replace(/\s+/g, '').replace(/\$/g, '')),
                                    k = parseFloat($(cels[11]).text().replace(/ /g, '')),
									cf = parseInt($(cels[7]).text().replace(/ /g, '')),
                                    naskl = parseInt($('.'+name+' div table tr td:contains("На складе:")').next().text().replace(/ /g, '')),
                                    nasklpp = parseInt($('.'+name+' div table tr td:contains("Отгрузки")').next().text().replace(/ /g, '')),
                                    cnk = 0;
                                    cnk = cn / k;
									if(isNaN(cnk)) cnk=0;
                                    if (cf>0 || (!isNaN(naskl) && !isNaN(nasklpp) && (naskl > nasklpp)))
                                    $('.p_title_l div table',$(this))
                                    	.after('<tr><td>Качество/Себестоимость:</td><td><strong style="display:block;" class="ccf1"></strong></td></tr>')
        								.after('<tr><td>На складе:</td><td><strong style="display:block;" class="ccf"></strong></td></tr>')
        								.after('<tr><td colspan="2"><strong>После пересчета</strong></td></tr>');
        							if(cf>0&&k>0) $(cels[7]).append('<strong style="display:block" class="cf"></strong>');
                                    else $(cels[7]).html('').append('<strong style="display:block" class="cf"></strong>');
        							$(cels[9]).append('<strong style="display:block" class="cnf"></strong>');
                                    if(cnk!==0) $(cels[11]).html('<b>'+parseFloat($(cels[11]).text()).toFixed(2)+'</b>').append('<b>($'+cnk.toFixed(2)+')</b><strong style="display:block" class="kf"></strong>');
                                    else $(cels[11]).append('<strong style="display:block" class="kf"></strong>');
                                    }
					            }
						     }
					     }

					//name = 'q'+randWD(3);
					//$(this).addClass(name);
                    //alert (name);
					if(txt2.length > 0){
						txt1[j-1] = [];
						txt1[j-1] = txt2;
					}

					j++;
					if(i > 0){
						ssred(cel,ar,true);
					}
					cel = this;
					ar = [];
					txt2 = [];
					i = 0;
                }
				if($(this).hasClass('odd') || $(this).hasClass('even')){
					var c = parseInt($('input[name*=supplyContractData]',cels[1]).val().replace(/ /g, '')),
						cn = parseFloat($(cels[3]).text().replace('$', '').replace(/ /g, '')),
						k = parseFloat($(cels[5]).text().replace(/ /g, '')),
						max = parseInt($(cels[8]).text().replace(/ /g, '')),
                        str = $(cels[8]).html(),
                        ck = 0,
                        sv = 0,
                        vsego = 0;

                        if(str.indexOf('из') > -1)
                        str = str.substring( (str.indexOf('из') + 2), str.length);
                        sv = parseInt(str.replace(/ /g, ''));
                        vsego = parseInt(str.substring( (str.indexOf('>') + 1), str.length).replace(/ /g, ''));
                        if(isNaN(max)) max = 10000000000000000;
                        if(sv < max)
                        max = sv;

                        if(k!==0) ck = cn / k;
                        if(isNaN(k)) ck = 0;
                        if(isNaN(c)) c = 0;
                        k = nullpr(k);

						txt2[i] = new addar(c, cn, k, 0, max, $('.skach[ids='+(j-1)+']').val(), name, i );

						if(c == max){
							$(cels[8]).css('background-color','#EFE');
							$('span', cels[8]).css('color','#000');
						}
						else {if(max===0&&k===0){
							 $(cels[8]).css('background-color','#EFE');
							 $('span', cels[8]).css('color','red');
						     }
                             else {if(c > max){
							      $(cels[8]).css('background-color','#FEE');
							      $('span', cels[8]).css('color','red');
                                  }
                                  else {if(c < max){
							           $(cels[8]).css('background-color','#EFE');
							           $('span', cels[8]).css('color','#000');
						               }}}}
						ar[i] = new addar(c, cn, k, 0, max );


						if($('.skach[ids='+(j-1)+']').val() < k)
							$(this).css('background-color','#E9E8FF');
						else
							$(this).css('background-color','#EAEAEA');
                        if(t){
						//	$(cels[8]).click(function(){
						//		var tr = $(this).closest('tr'),
						//			max = parseInt($(this).text().replace(/ /g, '')),
                        //          str = $(cels[8]).html(),
                        //            sv = 0;
                        //        if(str.indexOf('из') > -1)
                        //        str = str.substring( (str.indexOf('из') + 2), str.length);
                        //        sv = parseInt(str.replace(/ /g, ''));
                        //        if(isNaN(max)) max = 0;
                        //        if(sv < max)
                        //        max = sv;
						//		$('input[type=text]', tr).val(max);
						//		updatetablesk(false, name);
						//	});

							$(cels[5]).append('<span style="display:block;color:#f00;"><span title="Цена за единицу качества (Ц/К)">$'+ck.toFixed(2)+'</span>');
							but_1 = $('<input type="button" rel="'+n+'" value="+1п" />').unbind('click').click(function() { add($(this).attr('rel'),1,txt); });
							but_2 = $('<input type="button" rel="'+n+'" value="+2п" />').unbind('click').click(function() { add($(this).attr('rel'),2,txt); });
							$(cels[0]).prepend('<br />').prepend(but_2).prepend(but_1);
							$(cels[1]).prepend('<div class="divtemp" id="divtemp'+n+'"></div>');
							txt[n] = new addar(c, cn, k, 0, max );
							n++;
                        }
						$(this).addClass(name+i);
						i++;
				}
				if(!$(this).hasClass('odd') && !$(this).hasClass('even') && !$(this).hasClass('p_title') && i>0){
					if(txt2.length > 0){
						txt1[j-1] = [];
						txt1[j-1] = txt2;
					}
					ssred(cel,ar,true);
					if(sort) sortzak ();

					var nasklade = {};
					for(i = 0; i < txt1.length; i++){

						//if ($(" div table tr td:contains('На складе')").length) {
                        nasklade.nasklade = parseInt($('.'+ txt1[i][0].name +' div table tr td:contains("На складе")').next().text().replace(/ /g, ''));
                        //nasklade.nasklade = parseInt($('.p_title_l div table tr td:contains("На складе")').next().text().replace(/ /g, ''));
                        //nasklade.nasklade = parseInt(nasklade.nasklade.replace(/ /g, ''));
                        if(isNaN(nasklade.nasklade)) nasklade.nasklade = 0;
                        //alert (txt1[i][0].name);

						nasklade.naskladecach = $('.'+ txt1[i][0].name +' div table tr td:contains("Качество/Себестоимость")').next().text();
                        //nasklade.naskladecach = $('.p_title_l div table tr td:contains("Качество/Себестоимость")').next().text();
						nasklade.naskladecena = nasklade.naskladecach;
                        nasklade.naskladecach = parseFloat(nasklade.naskladecach.replace('$', '').replace(/ /g, ''));
						if(isNaN(nasklade.naskladecach)) nasklade.naskladecach = 0;

						//nasklade.naskladecena = $('.'+ txt1[i][0].name +' div table tr td:contains("Качество/Себестоимость")').next().text();
						nasklade.naskladecena = parseFloat(nasklade.naskladecena.substr(nasklade.naskladecena.indexOf('$')).replace('$', '').replace(/ /g, ''));
                        if(isNaN(nasklade.naskladecena)) nasklade.naskladecena = 0;
                        // }else {
                        //if(isNaN(nasklade.nasklade)) nasklade.nasklade = 0;
                        //if(isNaN(nasklade.naskladecach)) nasklade.naskladecach = 0;
                        //if(isNaN(nasklade.naskladecena)) nasklade.naskladecena = 0;

						nasklade.otgruzki = parseInt($('.'+ txt1[i][0].name +' div table tr td:contains("Отгрузки")').next().text().replace(/ /g, ''));
						//nasklade.otgruzki = parseInt(nasklade.otgruzki.replace(/ /g, ''));
						if(isNaN(nasklade.otgruzki))
							nasklade.otgruzki = 0;

						var cf1 = nasklade.nasklade - nasklade.otgruzki;
						if(cf1 < 0)
						   cf1 = 0;

						var cf = parseInt($('.'+ txt1[i][0].name +' .cf div').text().replace(/ /g, ''));
						if(isNaN(cf))
							cf = parseInt($('.'+ txt1[i][0].name +' .cf').text().replace(/ /g, ''));

						var col = nasklade.nasklade - nasklade.otgruzki;
						if(col < 0)
						   col = 0;
						if(isNaN(col)) col = 0;
						col += cf;
						if (col === 0) q1 = 0;
                        else var q1 = parseFloat( cf1 / col);
						if (col === 0) q2 = 0;
                        else var q2 = parseFloat( cf / col);

						var kf = parseFloat($('.'+ txt1[i][0].name +' .kf div').text().replace(/ /g, ''));
						if(isNaN(kf))
							kf = parseFloat($('.'+ txt1[i][0].name +' .kf').text().replace(/ /g, ''));
						var cnf = parseFloat($('.'+ txt1[i][0].name +' .cnf div').text().replace('$', '').replace(/ /g, ''));
						if(isNaN(cnf))
							cnf = parseFloat($('.'+ txt1[i][0].name +' .cnf').text().replace('$', '').replace(/ /g, ''));
						var r1 = parseFloat(q1 * nasklade.naskladecach + q2 * kf);
						var r2 = parseFloat(q1 * nasklade.naskladecena + q2 * cnf);

						$('.'+ txt1[i][0].name +' .ccf').text(num(col, false));
						$('.'+ txt1[i][0].name +' .ccf1').text(num(r1, true)+'/$'+num(r2, true));
                        //$('.p_title_l .ccf1').text(r1.toFixed(2)+'/$'+r2.toFixed(2));
                        //ssred(cel,ar,true);
					}}
                });

       			//if(sort)
				//   sortzak();
        //alert(n);
        //return txt1;
        }

    function updatetablesk (name) {
			//var sort = sort || false;
			var ar = [];
            var cel;
            var n=0;
			var txt2 = [];
            var txt1 = [];
            //alert (name);
            //name = name.substr(0,3);
			//j = 1;
			form = true;
			$('table.list tr[class*="'+name+'"]').each( function() {
            //$('table.list tr').each( function() {
                //$('table.list tr[class*="'+name+'"]').each( function() {
				var cels = $('td',this);
                if($(this).hasClass('p_title')){
                    //name = $(this).attr('class').substr(8);
   						//ko[j] = parseFloat($(cels[4]).text());
						//var skach = $('<input>', {'type':'text', 'class':'skach','style':'display:block;','ids':j}).val(ko[j]);//.unbind('keyup').keyup(function(){
						//	updatetablesk(true, name);
						//});
						//$('.p_title_l', this).prepend(skach);

                    //alert(name);
					//if(txt2.length > 0){
					//	txt1[j-1] = [];
					//	txt1[j-1] = txt2;
					//}
					//j++;
					//if(i > 0) {
					//	ssred(cel,ar,true);
					//}
					cel = this;
					//ar = [];
					//txt2 = [];
					i = 0;
                }

                if ($(this).hasClass('odd') || $(this).hasClass('even')) {
                    //alert ('2');
					var c = parseInt($('input[name*=supplyContractData]',cels[1]).val().replace(/ /g, '')),
						cn = parseFloat($(cels[3]).text().replace('$', '').replace(/ /g, '')),
						k = parseFloat($(cels[5]).text().replace(/ /g, '')),
						max = parseInt($(cels[8]).text().replace(/ /g, '')),
                        str = $(cels[8]).html(),
                        ck = 0,
                        sv = 0,
                        vsego = 0;

                        if(str.indexOf('из') > -1)
                        str = str.substring( (str.indexOf('из') + 2), str.length);
                        sv = parseInt(str.replace(/ /g, ''));
                        vsego = parseInt(str.substring( (str.indexOf('>') + 1), str.length).replace(/ /g, ''));
                        if(isNaN(max)) max = 10000000000000000;
                        if(sv < max) max = sv;

                        if(k!==0) ck = cn / k;
                        if(isNaN(k)) ck = 0;
                        if(isNaN(c)) c = 0;
                        k = nullpr(k);

						txt2[i] = new addar(c, cn, k, 0, max, name, i);

						if(c == max){
							$(cels[8]).css('background-color','#EFE');
							$('span', cels[8]).css('color','#000');
						}
						else {if(max===0&&k===0){
							 $(cels[8]).css('background-color','#EFE');
							 $('span', cels[8]).css('color','red');
						     }
                             else {if(c > max){
							      $(cels[8]).css('background-color','#FEE');
							      $('span', cels[8]).css('color','red');
                                  }
                                  else {if(c < max){
							           $(cels[8]).css('background-color','#EFE');
							           $('span', cels[8]).css('color','#000');
						               }}}}
						ar[i] = new addar (c, cn, k, 0, max );


						//if($('.skach[ids='+(j-1)+']').val() < k)
						//	$(this).css('background-color','#E9E8FF');
						//else
						//	$(this).css('background-color','#EAEAEA');

						//){
							//$(cels[5]).append('<span style="display:block;color:#f00;"><span title="Цена за единицу качества (Ц/К)">$'+ck.toFixed(2)+'</span>');
							but_1 = $('<input type="button" rel="'+n+'" value="+1п" />').unbind('click').click(function() { add($(this).attr('rel'),1,txt);});
							but_2 = $('<input type="button" rel="'+n+'" value="+2п" />').unbind('click').click(function() { add($(this).attr('rel'),2,txt);});
							//$(cels[0]).prepend('<br />').prepend(but_2).prepend(but_1);
							//$(cels[1]).prepend('<div class="divtemp" id="divtemp'+n+'"></div>');
							//txt[n] = new addar(c, cn, k, 0, max );
							//n++;
						//
						//$(this).addClass(name+i);
						i++;
                }});
				//if(!$(this).hasClass('odd') && !$(this).hasClass('even') && !$(this).hasClass('p_title') && i>0){
				    //if(txt2.length > 0){
                        //alert (txt2.length)
						//txt1[j-1] = [];
						//txt1 = txt2;
					//}
					ssred(cel,ar,true);
					//if(sort)
					//	sortzak();

					var nasklade = {};
					//for(i = 0; i < txt2.length; i++){
						//if ($(" div table tr td:contains('На складе')").length) {
                        if ($('.' + name +' div table tr td:contains("На складе")').parent().prev().text() == "После пересчета") nasklade.nasklade = 0;
                        else nasklade.nasklade = parseInt($('.' + name +' div table tr td:contains("На складе")').next().text().replace(/ /g, ''));
                        //nasklade.nasklade = parseInt($('.p_title_l div table tr td:contains("На складе")').next().text().replace(/ /g, ''));
                        //nasklade.nasklade = parseInt(nasklade.nasklade.replace(/ /g, ''));
                        if(isNaN(nasklade.nasklade)) nasklade.nasklade = 0;
                        //alert (txt1[i][0].name);

						nasklade.naskladecach = $('.' + name + ' div table tr td:contains("Качество/Себестоимость")').next().text();
						nasklade.naskladecena = nasklade.naskladecach;
                        nasklade.naskladecach = parseFloat(nasklade.naskladecach.replace('$', '').replace(/ /g, ''));
						if(isNaN(nasklade.naskladecach)) nasklade.naskladecach = 0;

						//nasklade.naskladecena = $('.'+ txt1[i][0].name +' div table tr td:contains("Качество/Себестоимость")').next().text();
						nasklade.naskladecena = parseFloat(nasklade.naskladecena.substr(nasklade.naskladecena.indexOf('$')).replace('$', '').replace(/ /g, ''));
                        if(isNaN(nasklade.naskladecena)) nasklade.naskladecena = 0;
                        // }else {
                        //if(isNaN(nasklade.nasklade)) nasklade.nasklade = 0;
                        //if(isNaN(nasklade.naskladecach)) nasklade.naskladecach = 0;
                        //if(isNaN(nasklade.naskladecena)) nasklade.naskladecena = 0;

						nasklade.otgruzki = parseInt($('.' + name +' div table tr td:contains("Отгрузки")').next().text().replace(/ /g, ''));
                        //nasklade.otgruzki = parseInt($('.p_title_l div table tr td:contains("Отгрузки")').next().text().replace(/ /g, ''));
						//nasklade.otgruzki = parseInt(nasklade.otgruzki.replace(/ /g, ''));
						if(isNaN(nasklade.otgruzki))
							nasklade.otgruzki = 0;

						var cf1 = nasklade.nasklade - nasklade.otgruzki;
						if(cf1 < 0)
						   cf1 = 0;

						var cf = parseInt($('.' + name +' .cf div').text().replace(/ /g, ''));
						if(isNaN(cf))
							cf = parseInt($('.' + name +' .cf').text().replace(/ /g, ''));

						var col = nasklade.nasklade - nasklade.otgruzki;
						if(col < 0)
						   col = 0;

						col += cf;
						if (col === 0) q1 = 0;
                        else var q1 = parseFloat( cf1 / col);
						if (col === 0) q2 = 0;
                        else var q2 = parseFloat(cf / col);

						var kf = parseFloat($('.' + name +' .kf div').text().replace(/ /g, ''));
						if(isNaN(kf))
							kf = parseFloat($('.' + name +' .kf').text().replace(/ /g, ''));
						var cnf = parseFloat($('.' + name +' .cnf div').text().replace('$', '').replace(/ /g, ''));
						if(isNaN(cnf))
							cnf = parseFloat($('.' + name +' .cnf').text().replace('$', '').replace(/ /g, ''));
						var r1 = parseFloat(q1 * nasklade.naskladecach + q2 * kf);
						var r2 = parseFloat(q1 * nasklade.naskladecena + q2 * cnf);

						$('.' + name +' .ccf').text(num(col, false));
						$('.' + name +' .ccf1').text(num(r1, true)+'/$'+num(r2, true));
                        //$('.p_title_l .ccf1').text(r1.toFixed(2)+'/$'+r2.toFixed(2));
                        //}
                //}
                //if($(this).hasClass('p_title') && !$(this).hasClass('p_title_l') && $(this).attr('class').substr(8) != name) {alert($(this).attr('class'));return false;};
           //}
        //);
				//if(sort)
				//   sortzak();
        //return ar;
        }

		//var ar =
        createtablesk(true, true);

        $('input[name*=supplyContractData]').unbind('keyup').keyup(function(){
            //alert ($('tr:has(td):has(input)').prev().attr('class'));
            //var name = $('tr:has(td):has(input)').closest('tr').attr('class').substr(8);
            if ($(this).closest('tr').attr('class').substr(0,3)=="odd")
            var name = $(this).closest('tr').attr('class').substr(4,4);
            else
                if ($(this).closest('tr').attr('class').substr(0,3)=='eve')
                var name = $(this).closest('tr').attr('class').substr(5,4);
            //alert (name);
			updatetablesk(name);
        //createtablesk(false, false);
		});
        $('table.list tr').each( function() {
            var cels = $('td',this);
		    if($(this).hasClass('odd')) {
                $(cels[8]).unbind('click').click(function(){
                    var name = $(this).closest('tr').attr('class').substr(4,4);
                    var tr = $(this).closest('tr'),
					max = parseInt($(this).text().replace(/ /g, '')),
                    str = $(cels[8]).html(),
                    sv = 0;
                    //alert (name);
                                if(str.indexOf('из') > -1)
                                str = str.substring( (str.indexOf('из') + 2), str.length);
                                sv = parseInt(str.replace(/ /g, ''));
                                if(isNaN(max)) max = 0;
                                if(sv < max) max = sv;
								$('input[type=text]', tr).val(max);
                    updatetablesk(name);});}
                    //createtablesk(false, false);});}
            if($(this).hasClass('even')) {
                $(cels[8]).unbind('click').click(function() {
                    var name = $(this).closest('tr').attr('class').substr(5,4);
                    var tr = $(this).closest('tr'),
					max = parseInt($(this).text().replace(/ /g, '')),
                    str = $(cels[8]).html(),
                    sv = 0;
                    //alert (name);
                                if(str.indexOf('из') > -1)
                                str = str.substring( (str.indexOf('из') + 2), str.length);
                                sv = parseInt(str.replace(/ /g, ''));
                                if(isNaN(max)) max = 0;
                                if(sv < max) max = sv;
								$('input[type=text]', tr).val(max);
                    updatetablesk(name);});}});
                    //createtablesk(false, false);});}});

  $('div#mainContent > form > table.list > tbody > tr:nth-child(1) > th:nth-child(1)').html('<div style="width:100%; text-align:center; color:blue; cursor:pointer"><strong name="showSeller"><span>Скрыть</span> поставщиков</strong></div>');
  $('strong[name=showSeller]').unbind('click').click(function() {
    s = $(this).find('span');
    $('div#mainContent > form > table.list > tbody > tr[class]').each(function() {
      if( $(this).hasClass('odd') || $(this).hasClass('even') ) { // Строки покупки ресурсов
          if(s.html() == 'Скрыть') $(this).css('display', 'none');
          else $(this).removeAttr('style');
      }// end switch
    });
    var sButton = $('div#mainContent > form > table.list > tbody > tr > td[colspan=9] > input.button160').parent().parent();
    if( s.html() == 'Скрыть' ) {
      s.html('Показать');
      $(sButton).css('display', 'none');
    } else {
      s.html('Скрыть');
      $(sButton).removeAttr('style');
    }
  });

//		var hidep1 = true;
//		var hidep = $('<button>Скрыть поставщиков</button>').appendTo($('table.list th')[0]).unbind('click').click(function(){
//			if(hidep1){
//				$('table.list tr.odd, table.list tr.even').hide();
//				$(this).text('Показать поставщиков');
//			}else{
//				$('table.list tr.odd, table.list tr.even').show();
//				$(this).text('Скрыть поставщиков');
//			}
//			hidep1 = !hidep1;
//			return false;
//		});

		var but_ras = $('<input type="button" value="Расчет" />').unbind('click').click(function() { Calculate1(2); });
	}

	if(form){
		$('#mainContent').after('<div id="mainformc" style="display:none; position:fixed; width:500px; background-color:#fff; border:solid 1px #000; z-index:1001; top:10px; left:10px;">'+closespan+'</div>');

		var but_show = $('<input type="button" value="Форма смеси" style="position:fixed; left:0px; top:0px;" />').unbind('click').click(function() { $('#mainformc').show(); });
		$('#mainContent').prepend(but_show);

		$('#mainformc').append('<table align="center" width="20%" border="0" class="grid"><tr class="odd" ><th></th><th >В наличии</th><th>Необходимо</th><th colspan=2 scope="col">Продукты</th></tr><tr align="right" class="odd"><th>Количество</th><td><input type=text id="sc" maxlength=11 value="0" size=10 tabindex=1></td><td><input type=text id="sc1" maxlength=11 value="0" size=10 tabindex=3></td><td><input style="background-color:#ddd;" readonly type=text id="sx1" maxlength=11 value="0" size=10></td><td><input style="background-color:#ddd;" readonly type=text id="sx2" maxlength=11 value="0" size=10></td></tr><tr align="right" class="even"><th>Качество</th><td><input type=text id="sk" maxlength=11 value="0" size=10 tabindex=2></td><td><input type=text id="sk1" maxlength=11 value="0" size=10 tabindex=4></td><td><input type=text id="sk2" maxlength=11 value="0" size=10 tabindex=5></td><td><input type=text id="sk3" maxlength=11 value="0" size=10 tabindex=7></td></tr><tr align="right" class="odd"><th>Цена</th><td></td><td ><div id="cenacach" style="color:#f00;"></div><input style="background-color:#ddd;" readonly type=text id="scn1" maxlength=11 value="0" size=10></td><td><div id="cenacach1" style="color:#f00;"></div><input type=text id="scn2" maxlength=11 value="0" size=10 tabindex=6></td><td><div id="cenacach2" style="color:#f00;"></div><input type=text id="scn3" maxlength=11 value="0" size=10 tabindex=8></td></tr></table>')
			.append(but_ras)
			.append('<label><input type="checkbox" id="svo" />Считать с кол-вом остатков</label>');

		$('#mainformc .closeform').unbind('click').click(function(){$('#mainformc').hide();});
	}
};

// Хак, что бы получить полноценный доступ к DOM >:]
var script = document.createElement("script");
script.textContent = '(' + run.toString() + ')();';
document.documentElement.appendChild(script);