Virtomomica:Techn salary

Расчет цены продажи технологии

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください。
// ==UserScript==
// @name           Virtomomica:Techn salary
// @namespace      Virtonomica
// @description     Расчет цены продажи технологии
// @description     Быстрый ручной поиск отсекаемых предложений
// @version        1.0
// @include        http://igra.aup.ru/*/window/management_action/*/investigations/technology_sellers_info/*/*
// @include        http://*virtonomic*.*/*/window/management_action/*/investigations/technology_sellers_info/*/*
// ==/UserScript==
var run = function() {

    var win = (typeof(unsafeWindow) != 'undefined' ? unsafeWindow : top.window);
    $ = win.$;

    function numberFormat (number) {
        number += '';
        var parts = number.split('.');
        var int = parts[0];
        var dec = parts.length > 1 ? '.' + parts[1] : '';
        var regexp = /(\d+)(\d{3}(\s|$))/;
        while (regexp.test(int)) {
            int = int.replace(regexp, '$1 $2');
        }
        return int + dec;
    }

    function calcSalary() {
	var salary = 0;
	var n = 0;
	var salary_all = 0;
	var n_all = 0;
	var table = $("table.list td[align='right']").each( function(){
		var color = $(this).css("color");	
		var val = $(this).text();
		var fl_val = /([\D]+)*([\d\s]+\.*\d*)/.exec(val)[2].replace(" ", "").replace(" ", "").replace(" ", "").replace(" ", "").replace(" ", "");
		fl_val = parseInt(fl_val);
		//alert(fl_val);
		salary_all+= fl_val;
		n_all++;
		if ( color == "grey")  return;
		salary+= fl_val;
		n++;
	});
	//alert( table.length + " [n="+n+"] " + numberFormat(salary/n));
	$("#salary_all").text( numberFormat( Math.round(salary_all/n_all)) );
	$("#salary").text( numberFormat( Math.round(salary/n)) );
    }

    $("table.list td[align='right']").click( function() {
           var color = $(this).css("color");
	   var new_color = "black";
	   if (color == 'grey'){
		new_color = "black";
	   } else {
		new_color = "grey";
	   }	
	   $(this).css("color", new_color);
	   calcSalary();   
   });
   
   $("div.headerSeparator").parent().append("<table width=100%><tr><td>Средняя по всем :<td><span id=salary_all>&nbsp;</span>" 
     +"<tr><td>Средняя с учетом исключений:<td><span id=salary>&nbsp;</span></table>" );

    calcSalary();   
}

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